Strongbash
Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
соглашения_кода:strongbash [07.06.2018 08:34] admin Approved(admin 2018/06/07 15:00) |
соглашения_кода: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 Пример...> | ||
| Строка 355: | Строка 356: | ||
| <code bash> | <code bash> | ||
| #!/bin/bash | #!/bin/bash | ||
| - | source ::carbon.sys | + | source crab_sys.sh |
| sys::usage "$@" | sys::usage "$@" | ||
| ### --help Info: Автоматически создавать и коммитить все файлы в каталоге | ### --help Info: Автоматически создавать и коммитить все файлы в каталоге | ||
| Строка 382: | Строка 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 | ||
| Строка 649: | Строка 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 "$@" и | ||
| Строка 862: | Строка 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> | ||
| Строка 886: | Строка 902: | ||
| {(rater>id=1|name=Прочитал_соглашения_кода:strongbash|type=vote|trace=user|tracedetails=1)} | {(rater>id=1|name=Прочитал_соглашения_кода:strongbash|type=vote|trace=user|tracedetails=1)} | ||
| + | |||
| + | ~~OWNERAPPROVE~~ | ||