ちょっとしたシェルスクリプトを書く際に、文法を思い出すためのまとめ。
変数
イコールの前後にスペースなどを入れるとエラーになる!
var1 = value
var1: command not found
代入する値が空白を含む場合は、シングルクォートかダブルクォートで囲む
※空白を含まない場合は囲む必要はない。
var3=a b c
b: command not found
変数の値を参照する場合は、変数名の先頭に$をつける
var3=hoge
echo $var3
hoge
参照する変数を明確にするには、{}で囲む
var=hoge
var1=fuga
echo ${var}1
hoge1
位置変数
引数の位置に応じて設定される変数
foo a b c d e f g h i j k l
$1
はa
$2
はb
...
${10}
はj
$10
だと$1
と1
、つまりa1
になってしまう
終了ステータス
Linuxコマンドは実行結果を示す「終了ステータス」を返す。
一般的にコマンド成功時には0
、失敗時には0以外を返す。
終了ステータスは$?
という変数に自動的にセットされる。
$ ls foo
ls: foo: No such file or directory
$ echo $?
1
if文
testコマンドによる評価。
testコマンドは[ ]
とも表記できる。
foo=1
if [ ${foo} -eq 1 ]
then
echo "foooo!!!!!"
else
echo "boooo!!!!!"
fi