Updated SC2039 (markdown)

koalaman
2015-10-13 10:39:36 -07:00
parent c93fbcaaeb
commit e5581ed182

@@ -1,10 +1,9 @@
## In POSIX sh, [[ ]] is undefined. ## In POSIX sh, [\[ ]] is undefined.
You have declared that your script works with `/bin/sh`, but you are using features that have undefined behavior according to the POSIX specification.
The shebang indicates that the script works with `/bin/sh`, but you are using non-standard features that may not be supported.
It may currently work for you, but it can or will fail on other OS, the same OS with different configurations, from different contexts (like initramfs/chroot), or in different versions of the same OS, including future updates to your current system. It may currently work for you, but it can or will fail on other OS, the same OS with different configurations, from different contexts (like initramfs/chroot), or in different versions of the same OS, including future updates to your current system.
Either declare a specific shell like `#!/bin/bash` or `#!/bin/dash` to make sure this shell is always used, or rewrite the script in a portable way. Either declare that your script requires a specific shell like `#!/bin/bash` or `#!/bin/dash`, or rewrite the script in a portable way.
For help with rewrites, the Ubuntu wiki has [a list of portability issues](https://wiki.ubuntu.com/DashAsBinSh) that broke people's `#!/bin/sh` scripts when Ubuntu switched from Bash to Dash. ShellCheck may not warn about all these issues. For help with rewrites, the Ubuntu wiki has [a list of portability issues](https://wiki.ubuntu.com/DashAsBinSh) that broke people's `#!/bin/sh` scripts when Ubuntu switched from Bash to Dash. ShellCheck may not warn about all these issues.