使い方

文字列が等しいか判定する。

$ name=John
$ if [ "$name" = "John" ]; then echo "My name is John."; fi

文字列が異なるか判定する。

$ if [ "true" != "false" ]; then echo "Hey!"; fi

参考:

シェルスクリプトの if 文と test コマンド – Qiita

if 文と test コマンド | UNIX & Linux コマンド・シェルスクリプト リファレンス

if 文 – 条件分岐 | server-memo.net

Bash で if ~ then ~ else ~ fi 文使う場合に忘れちゃならないこと – Qiita

条件分岐させる if の使い方! | エンジニアの入り口

test コマンドにおける演算子

参考:

Bash の if 文/test 文のオプションを整理してみた – Qiita

シェルスクリプトの if 文や while 文で使う演算子について – Qiita

Bash の if 文 | 揮発性のメモ

数値の比較

  • -eq等しい (=)
  • -ne等しくない (≠)
  • -lt左辺が右辺より小さい (<)
  • -le左辺が右辺より小さいか等しい (≦)
  • -gt左辺が右辺より大きい (>)
  • -ge左辺が右辺より大きいか等しい (≧)

参考:

if 文と test コマンド | UNIX & Linux コマンド・シェルスクリプト リファレンス

変数が定義されているか判定する

  • -v変数がセットされている
  • -n長さがゼロではない
  • -z長さがゼロである

変数 VAR が定義されているかどうか判定する。

if [ -n "$VAR" ]; then echo "VAR is defined. Its length is not zero."; fi
Code language: Bash (bash)

参考:

シェルスクリプトでの変数定義 – Qiita

シェル変数が定義されているかを判定する方法 | ねこゆきのメモ

シェルスクリプトで変数が未定義かを確認する | blog.n-t.jp

Bash でシェル変数が定義されているかを判定する方法は? | ALL about Linux

シェルスクリプトで空文字列かどうか調べる | masa.edw the ハバネロブリーダー

真偽値/ブーリアン

参考:

Bash で boolean を使った if 文/条件分岐 – Qiita

Bash で true とか false とか | ハックノート

シェルスクリプトで boolean を使った条件分岐を行う方法 | Reasonable Code

How can I declare and use Boolean variables in a shell script? – Stack Overflow

コード:

シェルスクリプトで true / false を使おう (dekokun) – GitHub Gist

ワイルドカード/正規表現

キーワードを含む場合の判定
if [[ $str =~ .*keyword.* ]]; then echo "OK: str has keyword"; fi
Code language: Bash (bash)
キーワードを含まない場合の判定
if ! [[ $str =~ .*keyword.* ]]; then echo "NO: str does not have keyword"; fi
Code language: Bash (bash)

参考:

Bash で if に正規表現を使った文字列マッチ条件分岐 | それマグで!

シェルでの正規表現比較 | akihiro_ob の日記

シェルスクリプトでの正規表現を使ったバリデーション | unhurried

Bash の if 文でワイルドカード/正規表現を用いて条件判断をさせる | 俺的備忘録

Bash で正規表現 ある文字列を含んである文字列を含まない – Qiita

文字列Aに文字列Bが含まれるか.sh (mori-dev) – GitHub Gist

論理和/論理積

条件の論理和を判定するには、|| 演算子を用いる。

if [ "$var1" = "true" ] || [ "$var2" = "true" ]; then echo "True!" fi
Code language: Bash (bash)

条件の論理積を判定するには、&& 演算子を用いる。

if [ "$var1" = "true" ] && [ "$var2" = "true" ]; then echo "True! fi
Code language: Bash (bash)

参考:

if 文で and や or 条件、&& や || 演算子を使う | 晴耕雨読

using the conditional “or” in an “if” statement – Unix & Linux Stack Exchange

エラー処理

fail || { echo "Error!"; exit 1; }
Code language: Bash (bash)

参考:

シェルスクリプトのエラー処理を見やすく書く | ablog

終了ステータス | UNIX & Linux コマンド・シェルスクリプト リファレンス

シェルスクリプトでエラー時の処理を行う方法 – Qiita

コマンドの終了ステータスを判定して何かしたい時のイディオム | ハックノート

if 文でコマンド実行結果の戻り値を判定する | 四角革命前夜

$?

参考:

終了ステータスよる条件分岐 | Codebase Blog

Bash でリターンコードを取得 | malibu-bulldog の日記

終了ステータスを $? と if 文で比較してはいけない | grep Tips *

記事をシェアする:
タグ:

コメントを残す

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

Protected by reCAPTCHA