本記事の目的
作業自動化用のスクリプトを作成する際によく使う、Bash独自の記法についてまとめる。
シェルスクリプト文法
パラメータ
項目 |
機能 |
$? |
直前のコマンドの終了ステータスを参照する。0であればTrue、0以外であればFalseの値を意味する。 |
$# |
シェルスクリプトやシェル関数の引数の個数を参照する。 |
$0 |
起動されたシェルスクリプト名を参照する。 |
"$@" |
全ての位置パラメータをそれぞれダブルクォートで囲んだ状態で展開する。 |
shift |
位置パラメータをシフトする。 |
リダイレクト
項目 |
機能 |
>&2 |
標準エラー出力にリダイレクトする。 |
&>/dev/null |
標準出力と標準エラー出力を両方破棄する。 |
評価
項目 |
機能 |
[[ ]] |
条件式を評価し、その結果によって終了ステータスを返す。test[ ]コマンドと比較して、正規表現や拡張正規表現を使用できる点がメリットである。逆に、shを用いるOS上では使用できないため、互換性に劣る点がデメリットとなる。 |
(( )) |
算術演算を行い、その結果によって終了ステータスを返す。 |
シェルスクリプト用コマンド
組み込みコマンド
項目 |
機能 |
exit |
シェルスクリプトを終了する。コマンドの後に0を指定すると正常終了、0以外を指定するとエラー終了を意味する。 |
read -p |
プロンプトを表示する。 |
usage() { } |
コマンドの扱い方を出力する関数。シェルスクリプトでは最初に記載されている事が多い。 |
getopt |
位置パラメータにセットされている、-で始まる1文字オプションを解釈し、最初に見つかったオプション文字の1文字を指定したシェル変数に代入する。この時、シェル変数OPTIND には、次にgetopts が実行されたときに解釈するべき位置パラメータの番号が代入される。オプション文字の直後に: がある場合は、そのオプションが引数を必要とするものと解釈され、その引数はシェル変数OPTARG に代入される。 |
外部コマンド
項目 |
機能 |
awk '{print $1}' |
1列目のフィールドを抽出して表示する。 |
awk -F |
区切り文字を指定する。 |
NF |
awkコマンドにおける列数を指定する。 |
感想
BashはUnix系のPC/サーバであれば、自宅/会社/客先問わず様々な環境で共通して使えるため、非常に便利に感じる。今はBashを用いて作業を自動化する事が多いが、Pythonではさらに複雑な処理を自動化できるようになるため、時間ができたらPythonを学習してみたい。
参考文献