Linuxのシェルスクリプト変数の記号あれこれ
簡単な表記だと色々な書籍に載っているのだが、
全部が網羅されているわけではないので、
あまり使用しない表記に出くわしたら、ぐぐるしかない。
しかし、$(ダラー)、:(コロン)、=(イコール)などの記号が混じった表記は
ぐぐりづらいので、ちょっと整理してみた。
表記 | 意味 |
$NAME | 変数NAMEを表す。 |
$1, $2, …, $9 | 各引数を表す。順に1番目、2番目、…、9番目を意味する。 |
${10}, ${11}, … | 10番目、11番目、… の引数を意味する。 |
$0 | 実行されたシェルスクリプトのファイル名を表す。 |
$# | 引数の数を表す。 |
$@ | 引数をスペース区切りで表す。 |
$* | 引数を環境変数IFSで区切って表す。IFSが空の場合、スペース区切りとなる。 |
$? | 直前に実行された処理の終了コード値を表す。 |
$$ | 現在実行中のシェルのプロセスID値を表す。 |
$! | 直前に実行された処理のプロセスIDを表す。 |
${NAME:-VALUE} | 変数NAMEが空の場合、値VALUEが設定される。 |
${NAME:=VALUE} | 「${NAME:-VALUE}」と同じ。 |
${NAME:+VALUE} | 変数NAMEが空でなければ、値VALUEが設定される。 |
${NAME:?VALUE} | 変数NAMEが空の場合、値VALUEを標準エラーに出力し、スクリプトの実行を終了する。 |
${NAME:START} | 変数NAMEのSTART番目以降の値を表す。 |
${NAME:START:LENGTH} | 変数NAMEのSTART番目からLENGTH文字分の値を表す。 |
こんなカンジかしら。