比较数字bash中的两个数字

时间:2015-05-29 22:19:58

标签: bash shell

我不知道问题出在哪里:当我执行此操作时,我收到错误:

./script.sh: line 4: if[ 7 -gt 5 ]: command not found  
./script.sh: line 5: syntax error near unexpected token then'
./script.sh: line 5: `then'
#!/bin/bash
read a
read b
if[ $a -gt $b ]
then
echo "$a is greater than $b"
elif [ $a -lt $b ]
then
echo "$a is less than $b"
else
echo "$a is equal to $b"
fi

1 个答案:

答案 0 :(得分:2)

bash中if的语法如下:

if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi

请注意if之后的空格;它是强制性。另请注意,[不是任何特殊语法;它只是一个命令,与lsgrep相同。您无法输入ifgrep,因此您也无法输入if[

由于if[不是if,因此您不在if块中,因此then是意外的,因此您的语法错误。

因此:

if [ "$a" -gt "$b" ]   # Correct

if ["$a" -gt "$b" ]    # Wrong because of lack of space

if[ $a -gt $b ]        # Wrong because of lack of space and lack of quotes

(保留引号会让你看到完全独立的错误集。)