我有一个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
击> <击> 撞击>
已解决:我在那里犯了一个复制错误。谢谢你的输入,伙计们。
答案 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。