exit
このコマンドがUnix端末でどのように機能するかを説明できる人はいますか?
検索しましたが、man exit
何のwhich exit
助けもなく次のような問題を発見しました。
新しいRed HatシステムにAnacondaおよびPyCharm用アドインパッケージをインストールした後、ターミナルセッションを終了しよexit
うとするたびに一連のエラーが発生し、ターミナルが期待どおりにシャットダウンすることがわかりました。これらのエラーは、私が呼び出す呼び出しが呼び出しをexit
トリガーしてエラーを発生させていることrm ~/anaconda3/.../
を示すようです。rm ~/PyCharm/....
すべてのディレクトリは、これらのプログラム(たとえば、numpy)用にダウンロードしたパッケージの場所であるように見えます。下記をご覧ください。
$ exit
rm: cannot remove ‘~/anaconda3/lib/python3.5/site-packages/numpy/core’: Is a directory
...
...
解決する
私の~/.bash_logout
ファイルに1行があります
find ~ -xdev ( -name *~ -o -name .*~ -o -name core ) -exec \rm '{}' \;
この行をコメントアウトすると、エラーメッセージが停止します。一時ファイルをすべて検索して削除するようです。ただし、「core」という単語を含むディレクトリを見つけて削除しようとすることもできます。これがシステムのデフォルトです。
ベストアンサー1
man bash
exit [n] [...] A trap on EXIT is executed before the shell terminates.
これらのトラップは、シャットダウン時にtmpファイルを整理するためによく使用されます。 https://stackoverflow.com/questions/687014/removing-created-temp-files-in-unexpected-bash-exit
次のように終了トラップを定義します(新しいシェルでより良いテストのため)。
$ bash
$ trap "rm filetodelete" EXIT
定義されたEXITトラップを表示します。
$ trap -p EXIT
trap -- 'rm filetodelete' EXIT
テスト:
$ exit
rm: cannot remove ‘filetodelete’: No such file or directory
exit
暗黙的に「呼び出し」することも可能であることに注意してください。したがって、exit
トラップを実行することもできますkill -HUP $$
。