Современный Bash-скрипт должен явно обрабатывать ошибки, заключать переменные в кавычки и проходить ShellCheck.
Важно:
set -e не заменяет обработку ожидаемых ошибок. Проверяйте коды возврата там, где отказ допустим.1. Создайте каркас
#!/usr/bin/env bash
set -Eeuo pipefail
main() {
local name=${1:-world}
printf 'Hello, %s!\n' "$name"
}
main "$@"
2. Сделайте исполняемым
chmod 0755 hello.sh
./hello.sh VPS
3. Проверяйте условия и массивы
files=("one file.txt" "two.txt")
for file in "${files[@]}"; do
[[ -e $file ]] && printf '%s exists\n' "$file"
done
4. Запустите статическую проверку
sudo apt install shellcheck
shellcheck hello.sh
bash -n hello.sh