我正在尝试检测字符串是否包含破折号,但似乎没有任何东西适合我(我是shell的新手)。
if [ "$m" -eq "-" ]
then
echo "has dash"
else
echo "has no dash"
fi
答案 0 :(得分:4)
-eq
用于测试整数的相等性。要测试字符串相等性,请改用=
:
if [ "$m" = - ]
有关详细信息,请参阅test
的手册页。
答案 1 :(得分:2)
if [ "x$m" = "x-" ]; then
echo "is a dash"
else
echo "is not a dash"
fi
如果[
以$m
开头,则使用字符串比较,引用所有内容并避免可能的-
命令行切换混淆(在某些非Posix shell上)。
答案 2 :(得分:1)
'-eq'运算符执行算术比较。您需要使用'='运算符。即:
如果测试“$ m”=' - ';然后 回声“是一个破折号”; 其他 回声“没有冲刺”; 网络