我不知道问题出在哪里:当我执行此操作时,我收到错误:
./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
答案 0 :(得分:2)
bash中if
的语法如下:
if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi
请注意if
之后的空格;它是强制性。另请注意,[
不是任何特殊语法;它只是一个命令,与ls
或grep
相同。您无法输入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
(保留引号会让你看到完全独立的错误集。)