Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2914

【シェルスクリプトBash】 if 文(test文)のオプションまとめ

$
0
0

この記事では、《シェルスクリプトのif文(test文)のオプション》について、
僕が学習した内容をまとめています。

  • オプション①: 数値の比較
  • オプション②: 文字列の比較
  • オプション③: 文字列長のチェック
  • オプション④: ファイル・ディレクトリのチェック
  • オプション⑤: 実行結果のチェック

こういった内容についてまとめています。

※本記事は、自分で学習したことのまとめ用として書いています。
尚、解説で誤った点があれば、スローして頂ければ喜んでキャッチしますのでお願い致します。

オプション①: 数値の比較

オプション説明備考①備考②
A -eq BAとBが等しければ trueequal=
A -ne BAとBが等しくなければ truenot equal!=
A -gt BAがBより大なら truegreater than>
A -ge BAがB以上なら truegreater than or equal>=
A -lt BAがBより小なら trueless than<
A -le BAがB以下なら trueless than or equal<=

--- 例題 ---

sample.sh
#!/bin/bashnumA=1
numB=1

if[$numA-eq$numB];then
    echo"numA と numB は等しい"else
    echo"numA と numB は等しくない"fi

--- 実行結果 ---

$ . sample.sh
numA と numB は等しい

オプション②: 文字列の比較

オプション説明
A = BAとBが等しければ true
A != BAとBが等しくなければ true

--- 例題 ---

sample.sh
#!/bin/shstr="hello"if[${str}="hello"];then
    echo"${str}"echo"Hello!!!"elif[${str}="world"];then
    echo"${str}"echo"World!!!"else
    echo"Hello World!!!"fi

--- 実行結果 ---

$ . sample.sh
hello
Hello!!!

オプション③: 文字列長のチェック

オプション説明
-z AAの文字列長が 0 なら true
-n AAの文字列長が 0 より大なら true

--- 例題 ---

sample.sh
#!/bin/bashstr="abcde"if[-n"${str}"];then
  echo"文字列長は 0 より大きいです!"else
  echo"文字列長は 0 です!"fi

--- 実行結果 ---

$ . sample.sh
文字列長は 0 より大きいです!

オプション④: ファイル・ディレクトリのチェック

オプション説明
-f AAがファイルなら true
-d AAがディレクトリなら true
-e AAが存在するなら true
-s AAのサイズが 0 より大きければ true
-r AAが読み取り可能なら true
-w AAが書き込み可能なら true
-x AAが実行可能なら true

--- 例題 ---

sample.sh
#!/bin/bashLOG_FILE="sample.log"if[-f${LOG_FILE}];then
  echo"ファイルです!"else
  echo"ファイルではありません!"fi

--- 実行結果 ---

$ . sample.sh
ファイルです!

オプション⑤: 実行結果のチェック

オプション説明
$?直前のコマンドの実行結果を格納

--- 例題 ---

sample.sh
#!/bin/bash. dummy.sh  # dummy.shを実行exit_flag=$?# 実行結果を変数に格納if[$exit_flag= 0 ];then
    echo$exit_flagecho"dummy.shは正常終了"else
    echo$exit_flagecho"dummy.shは異常終了"fi

--- 実行結果 ---

$ . sample.sh
0
dummy.shは正常終了

Viewing all articles
Browse latest Browse all 2914

Trending Articles