新しいMacではbashに切り替えてみてください。
alex.mills@alex uta-phd %
alex.mills@alex uta-phd % echo $SHELL
/bin/zsh
alex.mills@alex uta-phd %
alex.mills@alex uta-phd % exec bash
The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.
%na%m %1~ %#
%na%m %1~ %# echo $SHELL
/bin/zsh
%n@%m %1~ %#
echo "$SHELL"
引き続き使用中だと思います/bin/zsh
何をすべきか?
答え1
あなたはいバッシュを実行してください。だから、プロンプトが奇妙に見えるのです。 Bashとzshは両方ともPS1
変数をプロンプトのデフォルト設定として使用しますが、エスケープシーケンスは異なります(bashのバックスラッシュ文字、zshのパーセント記号文字、2番目の文字は異なる意味を持ちます)。
PS1
通常、この変数は環境にエクスポートするのではなく(または)シェルの初期化ファイルによって設定する必要がありますが(主なLinuxディストリビューションを含む)、多くのシステムでは非常に簡単に構成およびエクスポートできます。私が知っている限り、MacOSはデフォルトで正しくエクスポートされませんが、ユーザーのファイルはエクスポートできるように見えます(または私が確認したものとは異なるバージョンのmacOSかもしれません)、何らかの理由でそうではありません。特にmacOSでは、すでに設定されている場合は変更してください。.bashrc
.zshrc
PS1
PS1
bashrc
PS1
環境SHELL
変数は実行中のシェルを表しません。どんな殻を見せるか考えるランニング。これは、実行するシェルを起動したいプログラムに通知します。他のシェルを手動で実行しても何も変わりません$SHELL
。
シェルプロンプトが表示され、どのシェルが実行されているかわからない場合は、を使用して確認できますps
。すべてのBourneスタイルのシェル(sh、ash、bash、ksh、zshなど)は$$
シェルのプロセスIDを表し、ps $$
現在のシェルがどのプログラムであるかを示します。 Fishでは、Fishが$$
無効なため、Fishを実行していることを示すエラーが発生します。
答え2
なぜそんなに頑張るのですかexec bash
?bash
シェルを起動するには、単にを実行しますbash
。ログインシェルとして機能するシェルの場合はを使用しますbash -l
。シェルを永久bash
にchsh
。
答え3
後でケースを変更しましたか?そうでない場合は、chsh -s $(which bash)
sumを呼び出しますecho $SHELL
。