输出1:
Enter your value: 12
./testscript.sh: line 4: 12: command not found
Your value is more than 10
输出2:
Enter your value: 5
./testscript.sh: line 4: 12: command not found
Your value is more than 10
我需要知道什么是错的。 我的Linux测试只是明天:(
#!/bin/bash
echo -n "Enter your value: "
read value
if [$value -lt 10]
then
echo "Your value is less than 10"
else
echo "Your value is more than 10"
fi
你的if语句应该是如下。 之前“]”的空间和空间后“[”
if [ $value -lt 10 ]
编辑
按照意见
你可以随时添加可选的; 在该行的末尾。 下面的脚本将正常工作。
a=20;
if [ $a -gt 10 ];
then
echo "true";
else
echo "false";
fi
你需要把你的病情在[状态]。 下面的一个不起作用。
( condition )
它会说找不到命令 。 如“(”没有命令。其中为“[”是为了检查的状态的命令
而比较合适的方法是使用[[ ]]
在[ ]
中的Bash时候,因为你能避免字的拆分和路径扩展它。 其他条件可以加入,以及:
if [[ ! $value =~ [0-9]+ ]]; then
echo "Invalid input."
elif [[ value -lt 10 ]]; then
echo "Your value is less than 10."
elif [[ value -eq 10 ]]; then
echo "Your value is 10."
else
echo "Your value is more than 10."
fi
抛出另一种选择到组合:bash有(( ... ))
- 算术条件:
if (( $value < 10 )); then ...
http://www.gnu.org/software/bash/manual/bashref.html#Conditional-Constructs
有一两件事你可以在bash与算术表达式要做的就是砸$
。
if (( value < 10 )); then
这是记录一个位不明显壳牌算术 :“在一个表达式,shell变量也可以通过名称引用不使用参数扩展的语法。”
这可能会吸引到类似C语言的爱好者,但它是一个有点超前于语言的其余部分,它并不适用于所有的变量(如特殊PARAMATERS( $#
和数组元素( ${foo[3]}