| | If you accidentally run a bash script with sh, you’re probably going to have a
bad time. One little gotcha is the use of [[ (double square brackets) in bash. E.g.: if [[ -z "${PROJECT_ID}" ]]; then
echo 'PROJECT_ID is empty, exiting'
exit 1
fi
Bash will check the condition as expected. Sh, on the other hand, will reject
the double-brackets syntax that it is
not aware of with a message like this: [[: not found
That wouldn’t be so bad, but by default it will then continue running the
script. If you were using the condition for a validation check as in the example above,
this can be pretty disastrous: the script would carry on with invalid input,
which is what the check was supposed to prevent. Sh will ignore a shebang line like #!/usr/bin/env bash at the start of the
script, so you have to make sure the script is being run with the shell you’re
expecting. View post:
A bad mix of bash and sh with [[ |
|
| |