I am writing POSIX shell scripts quite often, mostly for speed and portability. Though, that might not even be needed, as bash might have gotten a speed increase compared to dash, ash and whatnot.
Here are some tests I plan to run to see if the speed difference is still the case
As my normal user shell I use fish since quite some time. I enjoy
- a simple PS1 that shows the git branch, git status, truncated path where I am
- autocompletion based on history
- autosuggestions from
-hor--helpeven if the tool has no autocompletions in other shells abbrinstead oraliasis quite cool to not forget the actual commands. But I can live without
I dont use more features really. I have a couple of fish functions, and fish might just be a better bash with easier syntax. But bash is the standard, so I never use them anyways.
I wouldnt want to switch to zsh because it is weird permissively licensed. But if it is faster or better than bash, maybe?
I also like that fish is completely rewritten in rust. There is rusty-bash aka. sushi shell, anyone use that? Is is compatible with modules?
Are these extensions just scripts that you run on startup of the shell?


Well my shebang is #!/bin/sh which might break because I am on NixOS XD
So fish might fallback to using fish
I’m on NixOS for my personal laptop, too. I just tried it and well,
#!/bin/bashapparently does not work, but#!/bin/shdoes.The file
/bin/shdoes also exist as a symlink for me:> ls -l /bin/sh lrwxrwxrwx 1 root root 73 14. Dez 19:50 /bin/sh -> /nix/store/35yc81pz0q5yba14lxhn5r3jx5yg6c3l-bash-interactive-5.3p3/bin/sh*Does that point into the
bashpackage for you, too?Edit: And for
#!/bin/bash, the output was:> ./test exec: Failed to execute process './test': The file specified the interpreter '/bin/bash', which is not an executable command.