an interactive shell really _doesn't_ need to be interoperable between users in the first place, but even a scripting shell doesn't need this either.
This is what the shebang in your scripts is for. If you need to write a script that is going to get shared, you have (at least) two perfectly good options:
- use bash (or some lowest common denominator)
- use a fancier (better?) shell, like fish/xonsh/nushell/oil and just require that everyone have that shell installed (they don't have to use it as a daily driver).
xonsh is not really any different from other shells - it can be installed as an isolated environment with its own runtime (in this case Python)A third and usually better option is to use a dedicated scripting language - this is of course an opinion, but many people have recognized that anything longer than ~50 lines and that will need to be iterated upon in the future is a bad fit for a shell-like language.