在编写 shell 脚本的过程中,我遇到了脚本中间某处的以下 if/else 语句的问题:
if [ $act -eq "add" ]
then
read - "add or update: " $comm
git commit -m "$comm $file"
else
git commit -m "$act $file"
fi
返回的错误是:
./gitup: line 13: [: add: integer expression expected
然后继续执行脚本的其余部分。我如何让 if 段评估/比较变量与字符串输入而不是整数;在我尝试的其他几种方法中,使用“!=”时需要不同的错误。
答案1
像这样:
act="add"
if [[ $act = "add" ]]
then
echo good
else
echo not good
fi
-eq
用于数字比较,用于=
字符串比较
答案2
这种方法也有效。与@Guru 的答案非常相似,但不需要双方括号。
if [ "$act" == "add" ]
then
echo "Good!"
else
echo "Not good!"
fi