【シェル】IF文の使い方まとめ| プロサバメモ

WEBプログラミングやサーバ設定などのメモ場

【シェル】IF文の使い方まとめ

2016.03.142022.04.23

シェルのIF文は、書き方にちょっと癖があってすぐ忘れてしまうため、使い方のメモをまとめておきます。

!/bin/sh

# ファイルに関する判定
if [ -r file ]; then
        echo "fileが読み取り可能"
fi
if [ -w file ]; then
        echo "fileが書込み可能"
fi
if [ -x file ]; then
        echo "fileが実行可能"
fi
if [ -f file ]; then
        echo "fileが普通のファイル"
fi
if [ -d file ]; then
        echo "fileがディレクトリ"
fi
if [ -s file ]; then
        echo "fileが0より大きいサイズ"
fi

# 文字列に関する判定
if [ -z string ]; then
        echo "stringの長さが0"
fi
if [ -n string ]; then
        echo "stringの長さが0より大きい"
fi
if [ string ]; then
        echo "stringがヌルではない"
fi
if [ str1 = str2 ]; then
        echo "str1とstr2が同じ"
fi
if [ str1 != str2 ]; then
        echo "str1とstr2が異なる"
fi

# 数値に関する判定
if [ int1 -eq int2 ]; then
        echo "int1とint2が等しい"
fi
if [ int1 -ne int2 ]; then
        echo "int1とint2が等しくない"
fi
if [ int1 -lt int2 ]; then
        echo "int1 < int2"
fi
if [ int1 -le int2 ]; then
        echo "int1 <= int2"
fi
if [ int1 -gt int2 ]; then
        echo "int1 > int2"
fi
if [ int1 -ge int2 ]; then
        echo "int1 >= int2"
fi

# AND OR
if [ -r file -a -x file ]; then
        echo "fileが読み取り可 かつ 実行可能"
fi
if [ -r file -o -x file ]; then
        echo "fileが読み取り可 または 実行可能"
fi

# 括弧付き
if [ \( -r file -a -x file \) -o -d file ]; then
        echo "fileが読み取り可で実行可能である または ディレクトリである"
fi

# NOT(否定)
if [ ! -r file ]; then
        echo "fileが読み取り可能ではない"
fi

関連記事

TOP