
shellで扱うif文は構文が特殊だったので、キチンと内容を理解しておきましょう。
基本構文
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 | ||と同じ |
0 件のコメント:
コメントを投稿