如何在 if/else 语句中将变量与文本字符串(而不是整数)进行比较?

如何在 if/else 语句中将变量与文本字符串(而不是整数)进行比较?

在编写 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

相关内容