我在下面的if语句中遇到了一个问题。它有三个不同的参数,我不确定是一个还是全部都错了。
# !/bin/sh
1=C
2=S
(1/2)=C <---- This might be a problem
if [ $1 == "C*" ]
then
echo "The city is:"
else [ $2 == "S*" ]
then
echo "The state is:"
else [ $1 -a $2 == "B*" ]
then
echo "The city and state is:"
else [ $1 -o $2 -ne "C*" "S*" "B*" ]
then
echo "Not found!"
fi
echo End of script
1条答案
按热度按时间7hiiyaii1#
使用数字作为变量是非常不明智的想法。数字是用来表示命令行参数的。
同样这种构造也是AFAIK未知的抨击对象:
-ne
还有这种构造:
是错误的,应该是这样的:
还有这个:
如果是奇数,则使用
-ne
来比较数字,如果是字符串,则使用!=
还有很多其他的错误/问题,挑战我没有时间提到的结构。