2011年08月20日
bash条件式
bashの条件式についてのメモ
e.g. if [ &VAL -a file ]
e.g. if [ &VAL -a file ]
-a file | ファイルが存在するか |
---|---|
-b file | block deviceファイルが存在するか |
-c file | キャラクターデバイスが存在するか |
-d file | ディレクトリが存在するか |
-e file | -aと同じ |
-f file | レギュラーファイルが存在するか |
-g file | setgid bitが設定されたファイルが存在するか |
-G file | group IDが設定されたファイルが存在するか |
-h file | symbolic linkが存在するか |
-k file | sticky bitが設定されたファイルが存在するか |
-L file | -hと同じ |
-n string | 文字列がnullでないか |
-N file | 最後にreadされてから変更されているか |
-O file | userIDが設定されているか |
-P file | pipe(FIFO) ファイルか |
-r file | 読込み可能なファイル化 |
-s file | 空ファイルではない |
-S file | socketファイルか |
-t N | ファイルディスクリプターがterminalを指しているか |
-u file | setuid bitが設定されているか |
-w file | 書込み可能なファイルか |
-s file | 実行可能なファイルもしくは検索可能なディレクトリ |
-z string | 文字列の長さが0 |
fileA -nt fileB | Aの修正時間がBより新しい |
---|---|
fileA -ot fileB | .. 古い |
fileA -ef fileB | AとBが同じファイルを指している |
stringA = stringB | 文字列Aが文字列Bと同じ(POSIX version) |
stringA == stringB | 上と同じ |
stringA != stringB | 文字列Aと文字列Bが一致しない |
stringA =~ regexp | 文字列Aが拡張正規表現regexpと一致する ※bash v3.0以降で利用可能。[[..]]の内部でのみ利用可能かも |
stringA < stringB | 文字列Aが文字列Bより辞書上で前にある |
stringA > stringB | .. 後ろにある |
exprA -eq exprB | 数字上の表現でAとBが等しい |
exprA -ne exprB | AとBが異なる |
exprA -lt exprB | AはBより小さい |
exprA -gt exprB | AはBより大きい |
exprA -le exprB | AはB以下 |
exprA -ge exprB | AはB以上 |
exprA -a exprB | AとBが真 |
exprA -o exprB | AもしくはBが真 |
この記事へのコメント