Unix编程if语句

时间:2012-03-03 22:23:46

标签: ksh

我收到错误有什么问题:./greater[4]: [: argument expected

#!/bin/ksh
echo "please enter a nuber " 
read $num
if [$num -ls 20 ]; then
 echo "your nuber is greater than 20 "
else
echo "your number is less then 20 "

 fi

2 个答案:

答案 0 :(得分:0)

[之后需要一个空格:

if [ $num -lt 20 ]; then

[命令实际上与test命令相同,作为命令,命令名称与其第一个参数之间需要一个空格。

答案 1 :(得分:0)

read $num

上面的内容将读取一个变量的输入,该变量的名称存储在$num中,“显然”不正确。将其更改为read num,它将按预期工作。


通过上述更改,您还需要在[后面引用的行中添加空格:

if [$num -ls 20 ]; then

否则,如果用户输入 123 ,该命令将类似于下面的代码段,并且您的shell会抱怨找不到[123命令或类似命令。

if [123 -ls 20 ]; then