- cross-posted to:
- [email protected]
- cross-posted to:
- [email protected]
I’ve done something similiar to this over the years for organization purposes and not having to change much between shells except add a path. You can also add cases that check your shell and do something slightly different if needed.
Functions are best for this.
It still limits where / how you use them.
For example, it’s easier / more efficient to call a shell script from sway (or whichever other software that might be running without a bash login session behind) than to try and force it to load a whole shell login session that includes those functions (which might also slow down the startup of the program and make it need a bit more ram without much of a benefit).
Scripts can reliably be run from everywhere (specially if placed somewhere in
$PATH
), functions require some preloading for every single new shell process and making sure the program invoking the shell (be it a terminal emulator or something else) is actually loading it. So as someone who likes to automate everything and often assigns hotkeys to particular commandline oneliners, scripts are much better… even a symlink might be more reliable than an alias.I agree. My
.zshrc
is littered with functions. Most useful ones are mypack
andextract
I made ~10 years ago, they just recognize file extension and use the correct tool.I even wrote a function to parse a json for some configuration details, and loop through it to dynamically create more named functions from that json profile. I use it at work for automating my cloud account logins with a single profile name from the command line. :)