我收到错误有什么问题:./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
答案 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