質問

文字列にダッシュが含まれているかどうかを検出しようとしていますが、何も機能していないようです(シェルは初めてです)。

if [ "$m" -eq "-" ]
then
echo "has dash"
else
echo "has no dash"
fi
役に立ちましたか?

解決

if [ "x$m" = "x-" ]; then
    echo "is a dash"
else
    echo "is not a dash"
fi

$ m -

他のヒント

-eq は、整数の等価性をテストするために使用されます。文字列の等価性をテストするには、代わりに = を使用します:

if [ "$m" = - ]

詳細については、 test のマニュアルページを参照してください。

「-eq」演算子は算術比較を実行します。代わりに「=」演算子を使用する必要があります。すなわち:

if test" $ m" = '-';それから     echo "ダッシュです" ;; 他に     エコー「ダッシュなし」 fi

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top