【发布时间】:2019-04-17 04:51:05
【问题描述】:
我正在尝试编写一个使用 if 语句的 Bash 脚本。
if[$CHOICE -eq 1];
脚本给了我错误,直到我在[ 和] 之前和之后给了一个空格,如下所示:
if [ $CHOICE -eq 1 ];
我的问题是,为什么方括号周围的空格在 Bash 中如此重要?
【问题讨论】:
-
一般语法是
if command; then commands_if_exit_code_is_0; else commands_if_exit_code_is_nonzero; fi;。command可以是任何命令,[只是其中之一。 -
相关:stackoverflow.com/questions/4977367/…(运算符周围也需要空格)。
-
如果
$CHOICE是"foo",您正在尝试运行命令["foo"。 -
在 Bash 中,
[[遵循相同的要求;你需要两边都有空格,命令需要以]]结尾。加倍版本更加通用和强大。请参阅上面@codeforester 的链接以进行更细致的讨论。
标签: bash if-statement syntax