以下のような方法で表現可能。
bash等の文法制約の関係上、下記は留意すること。
- []と条件式の間の半角スペース等には注意。
- 他にもif~else~fiの中に何も処理を入れないと、
怒られるので注意。(:と書くことで回避できる)
- [:=:unaryといったエラーを回避するため、変数を比較する場合は[ "$変数" = "" ]のように変数を""で囲った方が良い。
1.testを使う。
if test 条件式
then
fi
2.[]を使う。 ※[]と条件式の間の半角スペースを忘れないこと
if [ 条件式 ]
then
fi
3.条件式の後、改行せずに続ける
if [ 条件式 ];then
fi
4.else ifやelseも書く
if [ 条件式 ];then
elif 条件式; then
else
fi
5.&&, ||, Pattern matching, 正規表現も使う
[[ 条件式 ]]
条件式の例は以下の通り。
| 条件A -a 条件B |
AND条件。[]&&[]とすることも可能。違いは-aが1つのtestコマンドで条件判定するのに対し、[]&&[]は終了ステータスコードを判断してから次の条件判定をする点。 |
| 条件A -o 条件B |
OR条件。[]||[]とすることも可能。違いは-aが1つのtestコマンドで条件判定するのに対し、[]||[]は終了ステータスコードを判断してから次の条件判定をする点。 |
| -eq |
数値の=条件(equal) |
| -ne |
数値の≒条件(not equal) |
| -lt |
数値の<条件(less than) |
| -le |
数値の<=条件(less than or equal) |
| -gt |
数値の>条件(greater than) |
| -ge |
数値の>=条件(greater than or equal) |
| -n |
変数が空じゃない時 |
| -z |
変数が空の時 |
| = |
文字列の=条件 |
| != |
文字列の!=条件 |
| -e |
ファイルが存在する時 |
| -d |
ディレクトリの時 |
| -f |
ファイルの時 |
| 頭に! |
条件式の否定 |
他にも色々なオプションがあるので、
詳しく見たい場合は、man [等で見てみよう。
最終更新:2019年11月17日 13:01