echo $0 を変更した後も、まだデフォルトのシェルを表示するのはなぜですか?

echo $0 を変更した後も、まだデフォルトのシェルを表示するのはなぜですか?

修正後もなぜ引き続き表示されますかecho $0-bashシェルを次に変更しましたが、zsh試してもecho $0「-」が表示されます。

私がしたことは...次を使って利用可能なシェルを確認しました。

cat /etc/shells

/bin/bash /bin/zsh ... が表示されます。

一度chsh -s /bin/zshケースを変えました。

ベストアンサー1

これまで、chshこれが実際に何をしているのかを明確に説明する答えやコメントはありません。

chsh現在のシェルを変更しようとしているようです。習慣。ログインシェルがどのシェルであるか、オペレーティングシステムに通知するいくつかのレコードのみが変更されます。このレコードは、ログインシェルが開始される直前に計算を開始します。現在のシェル(または他の開始シェル)は影響を受けません。他のシェルに変換されず、シャットダウンしたり、他のシェルに置き換えられません。

「ログアウト後に再ログイン」などのソリューションが機能するのは、再ログイン後に必要なログインシェルにアクセスできるためです。ログインシェルを確認して実行するコマンド(選択したものとは無関係にいくつかの固定シェルを実行する代わりに)が解決策になる可能性があります。su存在するこの他の答えそれが順番です。

おすすめ記事