shell脚本中意外标记'then'附近的语法错误

时间:2014-03-03 06:38:15

标签: bash shell

我是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

1 个答案:

答案 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."之间需要一个空格。