shell if语句的问题

时间:2014-05-07 20:54:45

标签: bash shell

我有一个shell脚本如下(摘自一些演讲幻灯片):

#/bin/sh
echo -e "enter a number:\c"
read number
if [$number -ne 2]
  then
     echo "Number is not equals to 2"
fi

我在fi处遇到语法错误。知道问题是什么吗?

此外,extra中的echo -e "enter a number:\c"术语是什么意思(除了它要求一个数字的简单事实)?

<击> 编辑:现在我做了

#/bin/sh
echo -e "enter a number:\c"
read number
if [ "$number" -ne 2 ]
then
   echo "Number is not equals to 2"
fi

我仍然得到错误......

同样适用于

#/bin/sh
read -p "enter a number: " number
if [ "$number" -ne 2 ]
then
   echo "Number is not equals to 2"
fi 

<击>

已解决:我在那里犯了一个复制错误。谢谢你的输入,伙计们。

1 个答案:

答案 0 :(得分:2)

问题是如果条件:

if [$number -ne 2]

您需要在[之后和]之前放置空格,因此请使用:

if [ "$number" -ne 2 ]

您的脚本可以重写为:

#/bin/sh
read -p "enter a number: " number
if [ "$number" -ne 2 ]
then
   echo "Number is not equals to 2"
fi

但是如果bash可用,那么最好切换到bash而不是旧的bourne shell。