シェバング(shebang)は#!/bin/shではなく#!/bin/bashにする
#!/bin/bash
インデントは半角スペース2つ
function usage() { cat <<_EOT_ Usage: $0 [-a] [-b] [-f filename] arg1 ... Description: hogehogehoge Options: -a aaaaaaaaaa -b bbbbbbbbbb -f ffffffffff _EOT_ exit 1 }
#!/bin/bash function usage() { cat <<_EOT_ Usage: $0 [-a] [-b] [-f filename] arg1 ... Description: hogehogehoge Options: -a aaaaaaaaaa -b bbbbbbbbbb -f ffffffffff _EOT_ exit 1 } if [ "$OPTIND" = 1 ]; then while getopts abf:h OPT do case $OPT in a) FLAG_A="on" echo "FLAG_A is $FLAG_A" # for debug ;; b) FLAG_B="on" echo "FLAG_B is $FLAG_B" # for debug ;; f) ARG_F=$OPTARG echo "ARG_F is $ARG_F" # for debug ;; h) echo "h option. display help" # for debug usage ;; \?) echo "Try to enter the h option." 1>&2 ;; esac done else echo "No installed getopts-command." 1>&2 exit 1 fi echo "before shift" # for debug shift $((OPTIND - 1)) echo "display other arguments [$*]" # for debug echo "after shift" # for debug
readonly CONSTANT_PARAM="hoge" score=100
readonly MAX_NUMBER=100
function cal_score_ave() { local _score_sum=0 # ... }
対象 | 命名規則 | 備考 |
|ファイル名(絶対パス) |HOGE_FILE| |ディレクトリ名(絶対パス) |HOGE_DIR| |ファイル名(パスなし) |HOGE_FILENAME| |ディレクトリ名(パスなし) |HOGE_DIRNAME| |# ファイル名(絶対パス)|readonly HOGE_FILE="/var/tmp/hoge.txt"| |# ディレクトリ名(絶対パス)|readonly HOGE_DIR="/var/tmp/hoge"| |# ファイル名(パスなし)|readonly HOGE_FILENAME="hoge.txt"| |# ディレクトリ名(パスなし)|readonly HOGE_DIRNAME="hoge"|
function cal_score_ave() { # ... return 0 }
function cal_score_ave() { # ... return 0 }
CMD1 | CMD2
CMD1 >hoge.txt CMD1 >>hoge.txt CMD2 <fuga.txt CMD2 <<fuga.txt
{ echo "hoge" echo "fuga" echo "piyo" } >>logfile.log
if [ $? -ne 0 ]; then # ... exit 1 fi
for _score in ${SCORE_ARRAY[@]} do _score_sum=$((_score_sum + _score)) done while IFS=$`\n` read _line do echo $_line done <hoge.txt
[ $hoge = $foo ] && echo "true" || echo "false"
bashコーディング規約参考からリンク2年以上前
Bash, Zsh, Korn shellでしか使えませんが、[よりも[[のほうが一般的な演算子や正規表現が使えるのでオススメです。 http://mywiki.wooledge.org/BashFAQ/031
functionはBash・zshでしか使えないので追記をよろしくお願いします。この書き方で慣れてしまうとShebangが#!/bin/shのスクリプトに手を加えるときに少し面倒なことになります。(その場合はfunction抜きで書きます)