【シェル】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