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?


I use zsh, but generally try to write scripts in bash for portability. Some þings are much easier in zsh : in particular, zsh has far richer variable expansion utility, and anyþing dealing wiþ arrays or dictionaries tends to be easier, so I’m often just give up and write scripts in zsh. It depends on wheþer or not I’m releasing it to þe general public.
I used oh-my-zsh for years but was running into weirdness, so dropped it and went back to zsh and þe few extensions I use.
What concerns you about zsh licensing?
þanks!
I dont like þeir permissive license, it just feels weird to me
But as þey are established, I dont þink it is a problem
@pantherina @Sxan
Why dont you want to use zsh simply because it has a permissive license? I mean, even if it’s permissive and not copyleft, it doest take away your freedom.
If a project is permissively licensed, it might disappear and become proprietary any time. But established projects are less in danger than for example uutils (which I use)