6 ms·
I would also recommend to read Single Unix Specification on shell syntax, and then avoid bashisms whenever possible. Bash had a history of subtly changing its b
by dozzie 9y ago
I would also recommend to read Single Unix Specification on shell syntax, and
then avoid bashisms whenever possible. Bash had a history of subtly changing
its behaviour in these, which leads to scripts getting suddenly broken without
any modification on system update.
- zanchey 9y agoCould you give some examples? http://wiki.bash-hackers.org/scripting/bashchanges http://wiki.bash-hackers.org/scripting/bashchanges and http://wiki.bash-hackers.org/scripting/obsolete http://wiki.bash-hackers.org/scripting/obsolete aren't particularly enlightening.
- dozzie 9y agoWhat I was hit with were subtle changes to how [[ ]] worked, along the lines of implicit anchoring in pattern in previous version not taking place in succeeding version. It took quite a while to debug what became a logic error. After that I started avoiding bashisms in my scripts, especially that they usually provide very little benefit at the cost of gambling against breaking silently on a barely related update. Nowadays it's also worth noting that #!/bin/sh often (Debian derivatives) points to something that is not Bash, and people writing in shell/Bash usually don't understand the difference.