this post was submitted on 13 Dec 2025
26 points (88.2% liked)

Linux

10972 readers
435 users here now

A community for everything relating to the GNU/Linux operating system (except the memes!)

Also, check out:

Original icon base courtesy of lewing@isc.tamu.edu and The GIMP

founded 2 years ago
MODERATORS
 

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 -h or --help even if the tool has no autocompletions in other shells
  • abbr instead or alias is 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?

you are viewing a single comment's thread
view the rest of the comments
[–] pantherina@feddit.org 1 points 3 weeks ago (2 children)

Well my shebang is #!/bin/sh which might break because I am on NixOS XD

So fish might fallback to using fish

[–] Moussx@programming.dev 2 points 2 weeks ago

The most compatible shebang, that will also work on nixOS, is #!/usr/bin/env bash (and you can replace bash with whatever interpreter like sh of python3). It'll also respect environment overrides and all

[–] Ephera@lemmy.ml 1 points 3 weeks ago* (last edited 3 weeks ago) (1 children)

I'm on NixOS for my personal laptop, too. I just tried it and well, #!/bin/bash apparently does not work, but #!/bin/sh does.

The file /bin/sh does 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 bash package 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.
[–] pantherina@feddit.org 2 points 2 weeks ago

I think i use dash as my standard shell, but fish as my user shell. So it might point to fish, which doesnt work. Only using fish in my terminal could fix this.