ログアウトをキャンセルしてシェルに戻る

ログアウトをキャンセルしてシェルに戻る

私は実際にこれをしたくありません。意図しない結果の法則は、このアイデアにとって非常に重要です。こんな能力があるのだろうか。一部のスクリプトでは、同様の機能がブレイクアウトステップとして役に立ちます。

${HOME}/.logoutこれをファイルに書きたいとしましょう。

#! /bin/bash
cd /path/to/git/working/project
if [ "$( git status | wc -l )" -gt 5 ]
then
  echo "Check in your work before you leave."
  <STOP THE LOG OUT PROCESS AND RETURN TO THE SHELL PROMPT>
fi

最後の部分はどうすればいいですか?あなたはbreakやる?

答え1

まず、セッションの終了動作のトラップを設定します。

trap ~/.logout EXIT

必要に応じて、このトラップの動作を bashrc に追加し、ユーザーがシェルを終了しようとするたびに .logout スクリプトを実行できます。

その後、.logoutスクリプトを作成できます。

#!/bin/bash
cd /path/to/git/working/project
if [ "$( git status | wc -l )" -gt 5 ]
then
  echo "Check in your work before you leave."
  bash 
fi

その後、セッションを終了しようとすると、.logoutスクリプトが実行され、ユーザーが正しい操作を実行したことを確認するためにbashが表示されます。ユーザーがgitで正しい操作を実行すると、セッションは正常に終了します。

関連情報