ちょっとしたシェルスクリプトを書く際に、文法を思い出すためのまとめ。
変数
イコールの前後にスペースなどを入れるとエラーになる!
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