• Use Oil Shell if you want a faster and more modern version of Bash that’s compatible with it and offers more modern oil language.
  • Use Zsh if you want better extendability and more plugins.
  • Use Fish if you want perfect out of the box configuration and a more modern (and less verbose for most cases) scripting language.
  • Use Dash/Ash if you want better speed and full POSIX compliance (no extension, no unimplemented features).
  • Use Yash if you want better autocomplete but still faster than Bash.
  • Use Xonsh if you want an awesome Python-based scripting experience and very nice autocomplete.
  • Use Elvish if you want a more modern scripting language.
  • Or use anything. Any shell will be better than Bash. Bash is slow, not POSIX compliant, and doesn’t offer Zsh/Fish level autocomplete.
  • Klara
    link
    fedilink
    410 months ago

    I like bash, it’s very standard. If you need better autocomplete I’d absolutely recommend ble.sh, which gives you an experience more similar to fish, without having to relearn the entire shell.

    Look, I’ve been a fish user for years and still use it on some machines, but there are always cases where I cannot install fish, or fish is incompatible with a program I use (even via bass) or a feature I use in bash scripting works differently. Of course, I can always fix it, but it’s always faster to just drop into a bash shell. I’m also much more familiar with configuring bash than zsh and therefore that’s what I use. That’s why bash is a staple on all my systems, even my BSD machines.

    I think different shells are interesting and provide unique takes on what a shell can do, but telling people to stop using something that’s so ubiquitous and useful to learn comes off as grandstanding to me.