Здравствуйте.
Мне известно, что Bash и Zsh не полностью совместимы друг с другом. В связи с этим такой вопрос: прав ли я, полагая, что это совершенно неважно? Приведу свои доводы:
1.) Есть два режима использования командного интерпретатора - интерактивный (когда пользователь вводит команды) и неинтерактивный (когда интерпретатор выполняет какой-либо скрипт).
2.) Есть два способа запустить скрипт. Либо он делается исполняемым и вызывается по пути к нему, либо вызывается интерпретатор и ему указывается путь к скрипту.
3.) В первом случае интерпретатор выбирается автоматически исходя из shabang в начале скрипта.
4.) Во тором случае интерпретатор указывает сам пользователь.
5.) При этом, большая часть shell-скриптов написана совместимо с sh. Те, что не написаны совместимо с sh, совместимы с bash. Поскольку bash обратно совместим с sh, любой shell-скрипт можно открывать интерпретатором bash и не промахнуться.
6.) На zsh/fish и других скрипты не пишут, поскольку основные отличия zsh/fish и прочих от sh и bash направлены на увеличение удобства интерактивного использования, а в написании скриптов бесполезны.
7.) Таким образом вопрос со скриптами решается сам собой: писать на bash/sh, выполнять bash'ем - и не прогадаешь. И в любом случае совсем не играет роли, какой интерпретатор используется, как основной.
8.) В режиме интерактивного использования всё определяется исключительно личными предпочтениями пользователя, потому что ни о какой совместимости при этом речи не идёт.
Правильны ли мои мысли?