Why should there be spaces around '[' and ']' in Bash?
bash, if-statement, syntax
Solution
Once you grasp that `[` is a command, a whole lot becomes clearer!
`[` is another way to spell "`test`".
help [
However while they do exactly the same, `test` turns out to have a more detailed help page. Check
help test
...for more information.
Furthermore note that I'm using, by intention, `help test` and not `man test`. That's because `test` and `[` are shell builtin commands nowadays. Their feature set might differ from `/bin/test` and `/bin/[` from coreutils which are the commands described in the `man` pages.
Problem
I was trying to write a Bash script that uses an `if` statement. ``` if[$CHOICE -eq 1]; ``` The script was giving me errors until I gave a space before and after `[` and before `]` as shown below: ``` if [ $CHOICE -eq 1 ]; ``` My question here is, why is the space around the square brackets so important in Bash?