ton*_*666 35 bash shell-script bash-scripting
在编写 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
Run Code Online (Sandbox Code Playgroud)
返回的错误是:
./gitup: line 13: [: add: integer expression expected
Run Code Online (Sandbox Code Playgroud)
然后继续执行脚本的其余部分。如何让 if 段评估/比较变量与字符串输入而不是整数;在我尝试的其他一些事情中使用“!=”时需要一个不同的错误。
Gur*_*uru 52
像这样的东西:
act="add"
if [[ $act = "add" ]]
then
echo good
else
echo not good
fi
Run Code Online (Sandbox Code Playgroud)
-eq
用于数字比较,=
用于字符串比较
Yok*_*kai 10
这个方法也行。与@Guru 的回答非常相似,但不需要双方括号。
if [ "$act" == "add" ]
then
echo "Good!"
else
echo "Not good!"
fi
Run Code Online (Sandbox Code Playgroud)