Compare a string using sh shell Ask Question

Compare a string using sh shell Ask Question

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空の文字列を一致させるために使用すると書かれています。

おすすめ記事