if ![-z foo ]; then true; fi # if command `[-z' w/ args `foo', `]' fails..
if ! [ -z foo ]; then true; fi # if command `[' w/ args `-z', `foo', `]' fails..
Bourne shells are very whitespace sensitive. Adding or removing spaces can drastically alter the meaning of a script. In these cases, ShellCheck has noticed that you're missing a space at the position indicated.
ShellCheck does not understand Bash
History Expansion, an interactive shell feature also using
!
(such as !!
to expand to the previous
command).
These features are disabled by default in shells and very rarely used
in scripts, but may occasionally be found in interactively sourced files
like .bashrc
. Please ignore the error in these cases.
ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.