非ログインシェルに対して「ログアウトスクリプト」を実行する

非ログインシェルに対して「ログアウトスクリプト」を実行する

.bash_logout私が入れたスクリプトがあります。徒歩旅行者そして仮想マシンのユーザー(予想どおりに次のように使用します。徒歩旅行者)開発に使用します。

このスクリプトは、すべての重要なドットファイルをホストとゲストOSの間で共有されているディレクトリにコピーするので、簡単にGitリポジトリにチェックインし、変更を追跡し、ある仮想マシンを別の仮想マシンに構成内のコンテンツをより簡単に継承できます。あります。 。

私が経験している問題は、(あなたも推測されたが)スクリプトが決して実行されないということです。ユーザー、su私は以来次にログインする代わりに

exit他のユーザーの入力シェルにアクセスするたびにスクリプトを実行できますか?su私の考えでは、技術的にこれはログアウトスクリプトではありませんが、精神的にはほぼ同じです。

答え1

次のようにログインシェルを作成できますsu

su - [user]

ログインシェルを作成したくない場合は、終了トラップを使用できます。

trap_exit() {
    . "$HOME/.bash_logout"
}
trap trap_exit EXIT

上記のコードをユーザー.bashrcファイルに入れます。

関連情報