LoginSignup
3
2

More than 5 years have passed since last update.

bashのif文判定サンプル

Last updated at Posted at 2018-01-30

基本構文

if 条件式1 ; then
  処理1
elif 条件式2 ; then
  処理2
else
  処理3
fi

testコマンド

オプション 使用例 説明 数式サンプル
-eq test num1 -eq num2 num1 と num2 が等しければ真 num1=num2
-ne test num1 -ne num2 num1 と num2 が等しくなければ真 num1≠num2
-lt test num1 -lt num2 num1 が num2 より小ならば真 num1<num2
-le test num1 -le num2 num1 が num2 以下ならば真 num1≦num2
-gt test num1 -gt num2 num1 が num2 より大ならば真 num1>num2
-ge test num1 -ge num2 num1 が num2 以上ならば真 num1≧num2

testコマンドは[]で代用可能
[ ]と[[ ]]はワード分割とパス名展開がされないという違いあり

val='hoge hoge'
[ $val == hogehoge ]; echo $?
bash: [: 引数が多すぎます
2

val='hoge hoge'
[ '$val' == hogehoge ]; echo $?
1

[[ ]]は変数展開をクォートする必要がない

val='hoge hoge'
[[ $val == hogehoge ]]; echo $?
1
ディレクトリがない場合
if [ ! -d log ]
then
    echo log dir nothing!!
fi

http://shellscript.sunone.me/if_and_test.html
https://fumiyas.github.io/2013/12/15/test.sh-advent-calendar.html

変数が空でない場合のみ
if [ -n "$STRING" ]; then
  #処理
fi

参考演算子的な、
# $foo が $bar より大きければ 0 、そうでなければ 1 を $baz に代入する。

[ $foo -ge $bar ] && baz=0 || baz=1

[[ CONDITION ]] && { CMD1; CMDn; } || { CMDe1; CMDen; exit; }

以降作成中。。。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2