3 ms·
A brand new macbook pro will not have bash4.
by stephenr 9y ago
A brand new macbook pro will not have bash4.
- lillesvin 9y agoThe machine may not be ancient but I would still argue that the problem there is the ~10 year old version of Bash that Apple has decided to ship rather than the programmers that use features added to the shell within the last 10 years. (I should add that I don't know what version High Sierra ships with but Sierra seemed to ship with 3.2.5x-ish which was 9 years old at the time.)
- stephenr 9y agoWell put it this way: You can assume everyone has a modern bash, and make it the end users problem if they don't, or you can write portable shell scripts and know it will work. Honestly the things you can't do in posix shell compared to bash border on "use a fully featured language" anyway.
- sigjuice 9y agoHow do you write a portable shell script? The programs invoked by your shell script need to behave the same everywhere. Even fundamental things like cp, rm, etc. don’t universally behave the same across the various Unix and Unix-like systems. The joke is that your shell is actually more portable than your shell script :)
- stephenr 9y agoMost of the shell utilities described by posix have standard flags, and then gnu/bsd extra flags. If you use the standard ones (and use the "posix mode" flags when available) you're mostly ok. Also, a shell script can have logic to handle different tools available (either different flavours of the same tool or even different tools that do similar things). If the basic syntax it uses (or the shebang) are bash specific then you need bash to run it.
- lillesvin 9y agoThing is that Bash is something you can assume to be reasonably widely available[0] — like Perl or Python — but I wouldn't expect to have to avoid any features from the last 10 years of either of those two. Sure, a certain grace period is to be expected but I think 10 years is way past that. [0]: I know POSIX is supposed to be even more widely available but depending on what you're targeting then it may not be the best option [source: https://en.wikipedia.org/wiki/POSIX#POSIX-oriented_operating_systems https://en.wikipedia.org/wiki/POSIX#POSIX-oriented_operating...].
- stephenr 9y agoAfaik neither perl or python are gpl3-only licensed. Thats the blocker on macOS.
- coldtea 9y agoAnd it's all 2 minutes to add it as your default shell (including installing brew itself). 22:06 ~ $ bash --version GNU bash, version 4.4.12(1)-release (x86_64-apple- darwin16.3.0) Much easier than constraining oneself about what to put in one's script (assuming one is indeed targeting Linux, OS X etc released in the last 10+ years and not some embedded etc platforms).
- stephenr 9y agoIf your project says it requires something from brew thats a blocker for a number of people.
- coldtea 9y agoA mythical kind of project that depends on macOS having a recent bash?
- stephenr 9y agoIf your project depends on a bash script and that script depends on bash4, it wont run out of the box on a brand new macOS machine. A posix conptible shell script has no such limitation. Thats all im saying. Im not arguing the merits of which bash is better or what a project might need.