为什么在Bash中的'有一个空格?
我试图写一个使用if语句的Bash脚本。 
 if [$CHOICE -eq 1]; 
 脚本给了我错误,直到我在[之前]之后给出空格,如下所示: 
 if [ $CHOICE -eq 1 ]; 
我的问题是,为什么方括号中的空格在Bash中如此重要?
一旦你掌握了这个命令 ,就会变得更加清晰!
  [另一种拼写“ test ”的方法。 
 help [ 
 然而,尽pipe他们完全一样, test结果是有一个更详细的帮助页面。 检查 
 help test 
…了解更多信息。
 此外请注意,我正在使用,通过意图, help test而不是man test 。 那是因为test和[现在是shell命令。 他们的function集可能不同于/bin/test和/bin/[来自coreutils,它们是man页中描述的命令。 
从另一个问题 :
有点历史:这是因为'['历史上不是一个内置的shell,而是一个单独的可执行文件,它以expression式作为参数并返回结果。 如果你没有用空格来包围'['',那么shell会在$ PATH中search一个不同的文件名(而没有find它)。 – – 安德鲁·梅迪科2009年 6月24日在1:13
  [是一个命令, $CHOICE应该是一个参数,但是通过执行[$CHOICE ( [和$CHOICE之间没有任何空格[ ),试图运行名为[$CHOICE 。 命令的语法是: 
 command arguments separated with space 
  [是一个test命令。 所以它需要空间。