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.
Honestly, I’d rather record command and flags instead of relying on aliases to do that for me. Unless if its something very “niche” (like automatically pulling the required third party software everytime the distro boots up on .bash_profile).
I have never heard of anyone using aliases for anything but trivial one-liners. I don’t think people consider them as an alternative to scripts so I don’t really get the point of half of this post.
However, the part explaining the benefits of using scripts over aliases even for trivial one-liners is pretty neat.
I like fish abbreviations. They are like aliases but expand when you press space or enter. That way you can edit it, and also still see the full command so you are less likely to forget it when you don’t have your aliases. Of course I have some scripts as well.
And: Fish implements aliases as scripts! When you use alias —save, fish creates as script with a function in it.
I use ZSH with plugins but back when I switched away from bash, I also looked at fish. I didn’t use it back then because people say it doesn’t follow the POSIX standard but is that really an issue? It probably only extends it instead of taking things away, right?
All POSIX compatible shells have their quirks and differences because the common POSIX part is rather small, so you will need to learn them anyway when switching from one to another. Fish is not that different from them (to much less extent than something like nushell) and it benefits from having less ancient baggage.
I still write most scripts for bash, but for interactive use fish is just so much better out of the box.
Unless you have a particular reason for sticking to POSIX, who cares? I’ll take the user experience improvement without worry.