4 ms·
Is there a reason fish isn't posix compliant? From my experience (which is rudimentary tbf) there are only detriments due to the lack of sh scripts not working
by aquajet 5y ago
Is there a reason fish isn't posix compliant? From my experience (which is rudimentary tbf) there are only detriments due to the lack of sh scripts not working out of the box.
- akho 5y agoThe reason is that POSIX shells are ugly and stupid, and fish syntax fixes (some of the) fundamental errors made in Bourne shell. Things like "${args[@]}" and other quoting and array-expansion syntaxes should not exist. Subshells are difficult and surprising. Weird keywords (esac) are weird. Note how Plan 9 rc is also not POSIX. Shell scripts have shebangs and work.
- yourad_io 5y ago> Shell scripts have shebangs and work. Exactly this - I feel like it is a common misconception. Even without shebang? `bash the_thing.sh` -> done. Writing a personal utility for myself? Unless it is dead simple I'll go with fish. It'll work with spaces in file names by default, I won't need `while < read`, etc. Writing anything I need to distribute? sh or bash I've been using fish for years and years and never once have I thought "oh man I wish this was POSIX" because POSIX was always 3 key strokes away if I really needed it: `sh<CR>` (which, I did not, unless I had to write a portable script and needed a repl)