私が貢献している複数のライブラリをテストするために、さまざまなコンピュータにアカウントを持っています。一部のマシンは他の人(GCCコンパイルファームなど)の所有者なので、きれいに保ちたいと思っています。
以下.bash_logout
を行うスクリプトを設定したいmake clean
exit
もし私は特定のディレクトリにいます。ディレクトリでは、複数のSSHセッションを終了する必要があります。 1つのセッションでビルド/テストする場合は、アーティファクトをクリーンアップするために別々のセッションログアウトをしたくありません。つまり、実行がexit
キャンセルされ$HOME/libfoo
、exit
決して$HOME
。
基本は理解していますが、それがどれほど強力かはわかりません。
# $HOME/.bash_logout
if [ "$PWD" = "$HOME/libfoo" ]; then
make clean 1>/dev/null 2>&1
fi
$PWD
ログアウト時の使用に問題はありませんか?私が逃した他の質問がありますか?
ベストアンサー1
ログアウト時にのみスクリプトを実行しますか?
メンズバッシュから:
ログインシェルが終了すると、bashは〜/ .bash_logoutファイル(存在する場合)からコマンドを読み取り、実行します。
bashログインシェルを終了したときにのみ適用されます。
シェルが閉じるたびにスクリプトを実行するには、トラップを使用します(man bashを参照)。
trap /u1/myuser/on_exit_script.sh EXIT
これを.bashrcまたはあなたに適した他のファイルに追加してください。
さらに、スクリプトはシャットダウン時に実行されるため、$ PWDはシャットダウン時にアクティブになるスクリプトになります。これはシェルが起動したときと同じかもしれません。終了時に使用された $PWD で何かを行う必要がある場合はそうです。このテストは次のとおりです。
if [ "$PWD" = "$HOME/libfoo" ]; then
動作する必要があります。