
次のコマンドを使用してshをzshに置き換えました。
$ sudo mv /bin/sh /bin/sh1
$ sudo ln -s /usr/bin/zsh /bin/sh
$ ls -l /bin/sh
lrwxrwxrwx 1 root root 12 Jul 6 20:48 /bin/sh -> /usr/bin/zsh
$ which sh
/bin/sh
$ sh
$ exit
$ zsh
mpc% exit
ご覧のとおり、コマンドは接続されていますが、sh
シェルは開かれません。zsh
問題はなぜですか?この問題をどのように解決できますか?
答え1
これを行う必要があります。で始まると、sh
他のシェルとほとんど互換性があると仮定し、sh
互換モードで実行されます。
バラよりhttp://zsh.sourceforge.net/Doc/Release/Initation.html#Compatibility:
Zshは模倣しようとします。シェンまたはケシ
sh
またはそれぞれksh
[...]存在するシェンそしてケシ互換モード以下のパラメータは特別ではなく、シェルによって初期化されません:...
prompt
、、、PROMPT
...一般的なzsh起動/終了スクリプトを実行しないでください。
as呼び出しが互換モードで動作しない可能性があるかどうかはわかりませんが、これはZsh以外のものを想定しているsh
システムの多くのスクリプトを中断する可能性があります。/bin/sh
sh
おそらく代わりに実行するのが最善ですzsh
。