1

我正在尝试检测字符串是否包含破折号,但似乎对我没有任何作用(我是 shell 新手)。

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

3 回答 3

4

-eq用于测试整数的相等性。要测试字符串是否相等,请=改用:

if [ "$m" = - ]

有关更多详细信息,请参见手册页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”运算符执行算术比较。您需要改用“=”运算符。IE:

if test "$m" = '-'; 然后回声“是破折号”;else echo "没有破折号"; 菲

于 2009-11-28T23:30:46.717 回答