SH シェルを使用していて、文字列と変数の値を比較しようとしていますが、条件if
は常に true に実行されます。なぜでしょうか?
ここにコードがあります:
Sourcesystem="ABC"
if [ "$Sourcesystem" -eq 'XYZ' ]; then
echo "Sourcesystem Matched"
else
echo "Sourcesystem is NOT Matched $Sourcesystem"
fi;
echo Sourcesystem Value is $Sourcesystem ;
これも機能しません:
Sourcesystem="ABC"
if [ 'XYZ' -eq "$Sourcesystem" ]; then
echo "Sourcesystem Matched"
else
echo "Sourcesystem is NOT Matched $Sourcesystem"
fi;
echo Sourcesystem Value is $Sourcesystem ;
次に、これを NULL または空の文字列と一致させることができますか?
ベストアンサー1
文字列の比較には演算子を使用する必要があります=
。
Sourcesystem="ABC"
if [ "$Sourcesystem" = "XYZ" ]; then
echo "Sourcesystem Matched"
else
echo "Sourcesystem is NOT Matched $Sourcesystem"
fi;
man test
-z
空の文字列を一致させるために使用すると書かれています。