Bashで2つの文字列を比較する

Bashで2つの文字列を比較する

if私のBashスクリプトには次のブロックがあります。

if [ ${PACKAGENAME} -eq kakadu-v6_4-00902C ]; then
  echo "successfully entered if block!!"
fi

if同じであっても、$PACKAGENAMEスクリプトの実行は私のブロックに入りませんkakadu-v6_4-00902C。私は何が間違っていましたか?

ベストアンサー1

-eq2 つの数値を比較するために使用される算術演算子です。

=(portable / standard sh=~または代わりに使用してください==

また、${PACKAGENAME}スペースやワイルドカードを含めると、複数の引数に分割され、makeが必要な[ものよりも多くの引数を見ることができるので、引用符を使用してください。バラよりここ一般的なbashトラップのリストです。

if [ "${PACKAGENAME}" = 'kakadu-v6_4-00902C' ]; then
    echo "successfully entered if block!!"
fi

参照man bash、検索(/CONDITIONAL EXPRESSIONS

おすすめ記事