if文の条件式の分岐について
シェルスクリプトを作成するときに、文字列や数値の比較して条件分岐する際にif文を利用するケースがあります。その際に条件を比較する時に条件式を使いますが、いつも条件式の条件を忘れてしまいその都度に過去のスクリプトやネット情報を参考にしていましたので、今回のこの記事でまとめてみました
数値の比較 比較演算子
数値に比較には、「-eq」等の比較演算子を使用します。
-eq:等しい-ne:等しくない-lt:より小さい-le:以下-gt:より大きい-ge:以上
# 例 if [ "$num" -eq 10 ]; then echo "numは10です" fi
文字列の比較
文字列の比較には「=」等の記号を使用します
=:文字列が等しい!=:文字列が等しくない-z:文字列が空かどうか-n:文字列が空でないか
# 例 if [ "$str" = "hello" ]; then echo "strはhelloです" fi
ファイル・ディレクトリの比較
ファイルやディレクトリに関する条件は次のような記号で表現します。
-f:通常ファイルか-d:ディレクトリか-r:読み取り可能か-w:書き込み可能か-x:実行可能か
# 例 if [ -d /path/to/directory ]; then echo "ディレクトリが存在します" fi
複数の条件を扱う
if文では、「&&」(論理積 AND)や「||」(論理和 OR)を使って複数の条件を組み合わせることも可能です。
論理積(AND)
AND検索:両方の条件が真の場合にのみ実行されます。
# 例 if [ "$var1" -eq 1 ] && [ "$var2" -eq 2 ]; then echo "var1は1でvar2は2です" fi
論理和(OR)
OR検索:どちらか一方の条件が真の場合に実行されます
# 例 if [ "$var1" -eq 1 ] || [ "$var2" -eq 2 ]; then echo "var1が1またはvar2が2です" fi



コメント