我是shell脚本的新手,这是我的第一个shell脚本。我遇到了这个错误并陷入其中。以下是它的简单代码:
#!/bin/sh
yes=y;
no=n;
echo "Do you want to enter batch order id manually? (y/n) "
read answer
if [ $answer -eq $yes ]; then
echo "Please Enter Batch Order Id."
elif[ $answer -eq $no ]; then
echo "Copying all batch orders."
else
echo"please enter correct input."
fi
答案 0 :(得分:3)
脚本需要稍作修改:
#!/bin/sh
yes=y;
no=n;
echo "Do you want to enter batch order id manually? (y/n) "
read answer
if [ "$answer" = $yes ]; then
echo "Please Enter Batch Order Id."
elif [ "$answer" = $no ]; then
echo "Copying all batch orders."
else
echo "please enter correct input."
fi
elif
之后和[ $answer -eq $no ]
之前需要一个空格。
测试进行字符串比较,而不是数字比较。因此,需要=
代替-eq
。因此,即使用户没有输入任何内容,脚本也能正常工作,$answer
被置于测试中的双引号内。此外,echo
和"please enter correct input."
之间需要一个空格。