Strongbash

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
соглашения_кода:strongbash [19.04.2018 06:04]
admin [strongbash036 todo]
соглашения_кода:strongbash [14.01.2020 09:26] (текущий)
nikolay_carbonsoft
Строка 1: Строка 1:
 ===== Соглашение по строгому bash ===== ===== Соглашение по строгому bash =====
 +TODO_OSV возможно выборочно проверять номера из https://​github.com/​koalaman/​shellcheck
  
 ===== strongbash001 ===== ===== strongbash001 =====
Строка 101: Строка 102:
  
 ===== strongbash002 ===== ===== strongbash002 =====
-**Должен быть установлен set -eu или include ​::carbon.sys** \\+**Должен быть установлен set -eu или include ​crab_sys.sh** \\
 **Категорически нельзя ставить <​del>​set -o pipefail</​del>​ на весь файл см strongbash034_6** **Категорически нельзя ставить <​del>​set -o pipefail</​del>​ на весь файл см strongbash034_6**
 <WRAP center round important>​ВНИМАНИЕ set -eu это самое главное правило,​ оно дает режим strong.\\ <WRAP center round important>​ВНИМАНИЕ set -eu это самое главное правило,​ оно дает режим strong.\\
Строка 307: Строка 308:
 **В начале каждого файла должен быть echo START и USAGE, INFO, EXAMPLE\\ **В начале каждого файла должен быть echo START и USAGE, INFO, EXAMPLE\\
 В конце каждого файла должны быть echo SUCCESS и exit 0 :\\ ** В конце каждого файла должны быть echo SUCCESS и exit 0 :\\ **
-Для продвинутых разработчиков лучше использовать в начале скрипт:​ include ​::carbon.sys+Для продвинутых разработчиков лучше использовать в начале скрипт:​ include ​crab_sys.sh
 <hidden Почему...>​ <hidden Почему...>​
   - exit 0 для того чтобы избежать случайный код возврата.   - exit 0 для того чтобы избежать случайный код возврата.
   - USAGE, INFO, EXAMPLE использования важен, чтобы программа могла жить в будущем и не была выброшена.   - USAGE, INFO, EXAMPLE использования важен, чтобы программа могла жить в будущем и не была выброшена.
   - echo START echo SUCCESS делает удобным использование и чтение консоли и логов.   - echo START echo SUCCESS делает удобным использование и чтение консоли и логов.
-  - include ​::carbon.sys позволит автоматически деалать echo START echo SUCCESS echo FAIL sys::usage "​$@"​ # --help и показывает callstack при падении+  - include ​crab_sys.sh позволит автоматически деалать echo START echo SUCCESS echo FAIL sys::usage "​$@"​ # --help и показывает callstack при падении
 </​hidden>​ </​hidden>​
 <hidden Пример...>​ <hidden Пример...>​
Строка 331: Строка 332:
 exit 0 exit 0
 </​code>​ </​code>​
-<color #​22b14c>​Хорошо сделать функцию __exit(), если много exit 0 в программе</​color>​+<color #​22b14c>​Хорошо сделать функцию</​color>​ <​nowiki>​ 
 +__exit()</​nowiki><​color #22b14c>, если много exit 0 в программе</​color>​
 <code bash> <code bash>
 #!/bin/bash #!/bin/bash
Строка 354: Строка 356:
 <code bash> <code bash>
 #!/bin/bash #!/bin/bash
-source ​::carbon.sys+source ​crab_sys.sh
 sys::usage "​$@"​ sys::usage "​$@"​
 ### --help Info: Автоматически создавать и коммитить все файлы в каталоге ### --help Info: Автоматически создавать и коммитить все файлы в каталоге
Строка 381: Строка 383:
  
  
-<color #​22b14c>​Или для тихих файлов с carbon.sys:</​color>​+<color #​22b14c>​Или для тихих файлов с crab_sys.sh:</​color>​
 <code bash> <code bash>
 __SILENT=TRUE __SILENT=TRUE
-source ​::carbon.sys+source ​crab_sys.sh
 ### --help Info: Автоматически создавать и коммитить все файлы в каталоге ### --help Info: Автоматически создавать и коммитить все файлы в каталоге
 ### --help Usage: auto_git.sh [install] /​var/​www/​html ### --help Usage: auto_git.sh [install] /​var/​www/​html
Строка 648: Строка 650:
 fi fi
 </​code>​ </​code>​
-<color #​22b14c>​Хорошо при include ​::carbon.sys</​color>​+<color #​22b14c>​Хорошо при include ​crab_sys.sh</​color>​
 <code bash> <code bash>
 sys::usage "​$@"​ и  sys::usage "​$@"​ и 
Строка 805: Строка 807:
 ===== strongbash029 ===== ===== strongbash029 =====
  
-**Если мы берем stdout от функции мы обязаны прописать в первой строке set -e тк он снимается**+**Если мы берем stdout от функции мы обязаны прописать в первой строке ​Функции ​set -e тк он снимается** 
 + 
 ===== strongbash030 ===== ===== strongbash030 =====
 **Нельзя вызывать функцию внутри if fname и fname&&​ и fname||**\\ **Нельзя вызывать функцию внутри if fname и fname&&​ и fname||**\\
Строка 859: Строка 863:
 Запрещено использовать echo Без кавычек Запрещено использовать echo Без кавычек
 <​del>​echo $tmp</​del>​ <​del>​echo $tmp</​del>​
 +
 +
 +===== strongbash038 todo =====
 +Нужно всегда использовать переменные и аргументы в кавычках.
 +<code bash>
 +Нельзя:​
 +if [ $1 = info ]; then
 +    echo $1
 +fi
 +
 +Нужно:
 +if [ "​$1"​ = '​info'​ ]; then
 +    echo "​$1"​
 +fi
 +</​code>​
  
    
Строка 883: Строка 902:
 {(rater>​id=1|name=Прочитал_соглашения_кода:​strongbash|type=vote|trace=user|tracedetails=1)} {(rater>​id=1|name=Прочитал_соглашения_кода:​strongbash|type=vote|trace=user|tracedetails=1)}
  
 +
 +~~OWNERAPPROVE~~