1

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

if [ "$m" -eq "-" ]
then
echo "has dash"
else
echo "has no dash"
fi
4

3 に答える 3

4

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

if [ "$m" = - ]

詳細については、man ページを参照してtestください。

于 2009-11-28T22:21:22.160 に答える
2
if [ "x$m" = "x-" ]; then
    echo "is a dash"
else
    echo "is not a dash"
fi

文字列比較を使用し、すべてを引用符[で囲み$m-.

于 2009-11-28T22:27:19.910 に答える
1

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

if test "$m" = '-'; 次に、「ダッシュです」をエコーし​​ます。else echo "ダッシュはありません"; フィ

于 2009-11-28T23:30:46.717 に答える