zsh 쉘(비로그인 쉘 포함)을 종료할 때마다 명령을 실행하는 방법

zsh 쉘(비로그인 쉘 포함)을 종료할 때마다 명령을 실행하는 방법

나는 쉘을 종료할 때마다 일부 임시 파일을 정리하는 명령을 실행하려고 했습니다.

처음에는 이게 제 일이겠구나 싶었는데, .zlogout터미널 에뮬레이터(Kitten)에서 쉘을 여러개 열면 실행이 안되는 것 같습니다. 문서에서 찾은 내용에 따르면 이는 로그인 셸에서만 .zlogin작동합니다 .zlogout. 제가 틀렸다면 수정해 주세요. 터미널 에뮬레이터에서 다른 탭이나 창을 열었을 때는 그렇지 않습니다.

비로그인 쉘과 동등한 것은 무엇입니까 .zlogout? 아니면 비로그인 쉘에서 비슷한 효과를 얻기 위해 권장되는 방법은 무엇입니까?

답변1

다음과 같은 기능을 추가하세요.

function shellExit {
  # Your commands
}

그리고 함정, 예를 들어

trap shellExit EXIT

존재하다.zshrc

답변2

여기에 예가 있습니다.zsh 가이드~/.zlogout다음을 사용하는 비로그인 쉘의 소스TRAPEXIT기능. 이것이 바로 당신이 원하는 것 같습니다.

TRAPEXIT() {
    # commands to run here, e.g. if you 
    # always want to run .zlogout:
    if [[ ! -o login ]]; then
      # don't do this in a login shell
      # because it happens anyway
      . ~/.zlogout
    fi
  }

에 이 기능을 추가하세요 ~/.zshrc.

관련 정보