使い方

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

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

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

$ if [ "true" != "false" ]; then echo "Hey!"; fi
スクリプト
if [ -f log.txt ]; then
    cat log.txt
else
    echo "Hello, Log" > log.txt
fi

参考:

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

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

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

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

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

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

if elif else 構文の書き方 | IT を使っていこう

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

参考:

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

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

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.";
fiCode language: Bash (bash)

参考:

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

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

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

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

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

真偽値/ブーリアン

参考:

ブーリアンを使った if 文/条件分岐 – Qiita

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

シェルスクリプトでブーリアンを使った条件分岐を行う方法 | 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";
fiCode language: Bash (bash)
キーワードを含まない場合の判定
if ! [[ $str =~ .*keyword.* ]]; then
    echo "NO: str does not have keyword";
fiCode language: Bash (bash)

コード:

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

参考:

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

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

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

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

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

論理和/論理積

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

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

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

if [ "$var1" = "true" ] && [ "$var2" = "true" ]; then
    echo "True!
fiCode 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)

参考:

いい加減シェルスクリプトで [ $? -eq 0 ] や [ $? -ne 0 ] なんてエラー処理を書くのはやめよう! – Qiita

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

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

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

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

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

$?

参考:

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

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

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

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

コメントを残す

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

Protected by reCAPTCHA