シェルスクリプトのif文の書き方を徹底解説

シェルスクリプトのif文の書き方を徹底解説します。
シェルスクリプトに限らずif文は、必須になるので知っておいて損はないと思います。

<スポンサードリンク>

1. 文字列の比較

シェルスクリプト

% cat test.sh 
#!/bin/bash

str1="A"
str2="a"
str3="A"

if [ $str1 = $str2 ]; then
  echo "1と2は同じだよ!!"
elif [ $str1 = $str3 ]; then
  echo "1と3は同じ!!"
else
  echo "1と同じ文字はないよ!!"
fi

シェルスクリプトでは、文字列の比較は、「=」で行います。
他言語で言う所の「else if」は「elif」と記述します。

結果

% bash test.sh
1と3は同じ!!

2.  数値の比較

数値の比較は、下記表の通りの条件式で行います。

〜より大きい  num1 -gt  num2
〜より小さい  num1  -lt  num2
〜以上  num1 -ge num2
〜以下  num1 -le  num2

 

2-1. ~より大きいで比較したい

シェルスクリプト

#!/bin/bash

num1=1
num2=2


if [ $num2 -gt $num1 ] ; then
  echo "num2はnum1より大きい"
else
  echo "num2はnum1以下"
fi

結果

% bash test.sh
num2はnum1より大きい

2-2. ~より小さいで比較したい

シェルスクリプト

#!/bin/bash

num3=3
num4=4

if [ $num3 -lt $num4 ] ; then
  echo "num3はnum4より小さい"
else
  echo "num3はnum4以上"
fi

結果

% bash test.sh
num3はnum4より小さい

2-3. ~以上で比較したい

シェルスクリプト

#!/bin/bash

num5=1
num6=1


if [ $num5 -ge $num5 ] ; then
  echo "num5はnum6以上"
else
  echo "num5はnum6より小さい"
fi

結果

% bash test.sh 
num5はnum6以上

2-4. ~以下で比較したい

シェルスクリプト

#!/bin/bash

num5=1
num6=1


if [ $num5 -le $num5 ] ; then
  echo "num5はnum6以下"
else
  echo "num5はnum6より大きい"
fi

結果

% bash test.sh
num5はnum6以下

<スポンサードリンク>


3. NOT条件を使う

シェルスクリプト

#!/bin/bash

isTrue=true

if [ ! $isTrue ]; then
  echo "こっちにはこないだろうな〜"
else
  echo "こっち!"
fi

結果

% bash test.sh
こっち!

4. AND条件を使う

シェルクリプト

#!/bin/bash

num1=1
num2=1
num3=2
num4=2

if [ $num1 = $num2 ] && [ $num3 = $num4 ]; then
  echo "num1とnum2が同じかつnum3とnum4は同じ"
else
  echo "こっち!"
fi

結果

% bash test.sh 
num1とnum2が同じかつnum3とnum4は同じ

5. OR条件を使う

シェルクリプト

#!/bin/bash

num1=1
num2=1
num3=3
num4=2

if [ $num1 = $num2 ] || [ $num3 = $num4 ]; then
  echo "num1とnum2が同じもしくはnum3とnum4は同じ"
else
  echo "こっち!"
fi

結果

% bash test.sh
num1とnum2が同じもしくはnum3とnum4は同じ

5. ファイルの存在確認

シェルスクリプト

#!/bin/bash

TARGET_FILE="test.txt"

if [ -f ${TARGET_FILE} ]; then
  echo "ファイルが存在します"
else
  echo "ファイルが存在しません"
fi

結果

% bash test.sh  
ファイルが存在します

6. ディレクトリの存在確認

シェルスクリプト

#!/bin/bash

TARGET_DIR="test"

if [ -d ${TARGET_DIR} ]; then
  echo "ディレクトリが存在します"
else
  echo "ディレクトリが存在しません"
fi

結果

% bash test.sh
ディレクトリが存在します

7. コマンドの実行結果を確認する

#!/bin/bash

touch test.txt

if [ "$?" -eq 0 ]
then
  echo 'command success'
else
  echo 'command fail'
fi

 

関連記事

シェルスクリプトのif文の書き方を徹底解説

Linuxで特定の文字が含まれる行数を取得したい

シェルスクリプトのfor分の書き方を徹底解説

【初心者向け】シェルスクリプトの書き方入門 徹底解説

シェルスクリプトで変数と文字列を結合する

シェルスクリプトの関数の書き方を徹底解説

 

 

 

スポンサードリンク



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA