Bash文字列比較とif文
以下は、2つの文字列変数を比較するif
文の例です。
string1="hello"
string2="world"
if [ "$string1" = "$string2" ]; then
echo "The strings are equal."
else
echo "The strings are not equal."
fi
このコードでは、string1
とstring2
という2つの文字列変数が定義されています。次に、if
文を使用して、これらの変数の値が等しいかどうかがチェックされます。=
演算子は、2つの文字列が等しいかどうかを比較するために使用されます。if
文の条件が真であれば、echo
コマンドを使用して"The strings are equal."というメッセージが出力されます。そうでなければ、"The strings are not equal."というメッセージが出力されます。
string1="hello"
string2="world"
if [ "$string1" != "$string2" ]; then
echo "The strings are not equal."
else
echo "The strings are equal."
fi
注意:
- 文字列変数を比較するときは、必ず変数をダブルクォートで囲む必要があります。これにより、変数の値が適切に展開されるようになります。
if
文の条件を評価するときは、[
と]
の間にスペースを入れる必要があります。if
文の条件が真であれば、then
キーワードの後に続くコマンドが実行されます。else
キーワードは省略することもできます。
string1="hello"
string2="world"
if [ "$string1" = "$string2" ]; then
echo "The strings are equal."
else
echo "The strings are not equal."
fi
string1="hello"
string2="world"
if [ "$string1" != "$string2" ]; then
echo "The strings are not equal."
else
echo "The strings are equal."
fi
testコマンドを使用する
test
コマンドは、条件式を評価し、その結果を終了ステータスとして返します。終了ステータスが0であれば、条件式は真です。終了ステータスが1であれば、条件式は偽です。
以下は、test
コマンドを使用して2つの文字列変数を比較する例です。
string1="hello"
string2="world"
if test "$string1" = "$string2"; then
echo "The strings are equal."
else
echo "The strings are not equal."
fi
このコードは、上記のif
文と同じ結果を出力します。
[[と]]を使用する
[[
と]]
は、test
コマンドの拡張版です。[[
と]]
を使用すると、test
コマンドよりも柔軟な条件式を評価することができます。
string1="hello"
string2="world"
if [[ "$string1" == "$string2" ]]; then
echo "The strings are equal."
else
echo "The strings are not equal."
fi
このコードは、上記のif
文と同じ結果を出力します。[[
と]]
を使用すると、=
演算子の代わりに==
演算子を使用することができます。
case文を使用する
case
文は、複数の条件を評価し、その結果に基づいて異なるコマンドを実行することができます。
string1="hello"
string2="world"
case "$string1" in
"$string2") echo "The strings are equal." ;;
*) echo "The strings are not equal." ;;
esac
このコードは、上記のif
文と同じ結果を出力します。case
文を使用すると、複数の条件を評価し、その結果に基づいて異なるコマンドを実行することができます。
exprコマンドを使用する
expr
コマンドは、算術式や文字列操作を実行することができます。
string1="hello"
string2="world"
if expr "$string1" = "$string2" = 1; then
echo "The strings are equal."
else
echo "The strings are not equal."
fi
このコードは、上記のif
文と同じ結果を出力します。expr
コマンドを使用すると、算術式や文字列操作を実行することができます。
bash if-statement scripting