[プログラム学習] Shell #3 「if文」

shellで扱うif文は構文が特殊だったので、キチンと内容を理解しておきましょう。
基本構文
1 2 3 4 5 6 7 |
if [条件];then 実行文 elif [条件];then 実行文 else 実行文 fi |
for文と似ていて、do -> then、done -> fiという風に記述が違っているので、混同して間違わないように。
比較演算
数値
$a -eq $b | $aと$bが等しいとtrue | |
---|---|---|
$a -ne $b | $aと$bが違っている場合にtrue | |
$a -gt $b | $a>$bの時にtrue | |
$a -lt $b | $a< $bの時にtrue | |
$a -ge $b | $a>=$bの時にtrue | |
$a -le $b | $a< =$bの時にtrue |
文字列
$a | $aに値が入っている時にtrue | |
---|---|---|
-n $a | >$aに値が入っている時にtrue | |
! $a | $aに値が入っていない場合にtrue | |
-z $a | $aに値が入っていない場合にtrue | |
$a = $b | $aと$bが同じ場合にtrue | |
$a != $b | $aと$bが同じでない場合にtrue |
ファイル
-d DIR | ディレクトリの場合true |
---|---|
-f FILE | ファイルの場合true |
-L FILE | シンボリックリンクの場合true |
-r FILE | 読み取り可能の場合true |
-w FILE | 書き込み可能の場合true |
-x FILE | 実行権限があればtrue |
-s FILE | ファイルサイズが0でなければtrue |
FILE1 -nt FILE2 | ファイルのタイムスタンプがFILE1の方が新しい場合true |
FILE1 -ot FILE2 | ファイルのタイムスタンプがFILE1の方が古い場合true |
結合
条件1 -a 条件2 | &&と同じ |
---|---|
条件1 -o 条件2 | ||と同じ |