作業用Bashスクリプトのテンプレート
よく自分で書く作業用Bashスクリプトのテンプレートを残す。
気にかけていることは、
- -e オプションで、エラー時点で処理終了
- エラー時は、$LINENOで、該当行数出力
- -x オプションで、デバッグ
あたりは、必ずできるようにしてる。
余裕がある時は、
- 出力を着色
テンプレート
#!/usr/bin/env bash # template.bash set -e [ -n "$DEBUG" ] && set -x help() { echo "$0 some args" echo "some help" exit 1 } if [ -t 1 ]; then green_color="\e[1;32m" red_color="\e[1;31m" reset="\e[0m" else color="" reset="" fi indent_output() { while read -r data; do printf " ${green_color} | ${reset} %s\n" "$data" done } print_colored() { printf "${green_color}%s${reset}\n" "$1" } err_exit() { printf "${red_color}[ERROR] %s${reset} at line ${LINENO}\n" "$@" exit 1 } for arg; do case "$arg" in --help) help ;; * ) esac done print_colored "Updating some software..." echo -e "hoge\nbar\nfoo" | indent_output err_exit "failed zannen" exit 0
出力は、
デバッグ時は、
DEBUG=1 bash template.bash
とかで、叩くとデバッグできる。