python 対 perl ほど悪くはありません。bash と zsh はどちらも Bourne シェル (その動作は POSIX によって標準化されています) から派生しているため、動作するように設計されたスクリプト/bin/shは、bash または zsh のいずれでも動作する可能性があります。
通常、名前が示すように、 は zsh で使用するように設計されており、通常はや~/.zshrcなどの zsh 固有のコマンドが含まれます。autoloadcompinit
これらのコマンドを条件付きにすることができます。次に例を示します。
if [ "$ZSH_VERSION" ] ; then
autoload -U compinit
compinit
fi
しかしもちろん、それは、bash でそれらをエミュレートする方法を見つけ出さない限り、これらのコマンドの機能を利用できないことを意味します。(私はどちらのコマンドにも詳しくないので、その点についてはお答えできません。)
set -u(実行した場合、またはset -o nounsetbash シェルで実行した場合、これは失敗することに注意してください。)
~/.bashrcしかし、zsh と bash の両方を使用する場合は、個別のファイルと~/.zshrcファイルを用意し、それぞれが設計されたシェルでのみ使用する方がおそらくはるかに理にかなっています。重複を避けたい場合は、それぞれが共通コマンドを含む 3 番目のファイルを入手できます。
(そして、コメントに基づいて、そもそも間違ったことをしている可能性があります。)