bash_logout 및 기록

bash_logout 및 기록

나는 모든 사람을 구하는 것을 좋아합니다역사Bash에 일종의 로그 파일로 저장되며, 이를 위해 추가 디렉터리 ~/lib/hists/가 생성되었습니다.

쉘에서 이러한 로그 파일을 작성하는 것은 쉽습니다.

history -w /home/stefan/lib/hists/bash-hist-$(date +%F_%T_%N)

이제 닫으면 모든 닫힌 xterm이 로그 파일에 기록되므로 충돌을 피하기 위해 파일 이름에 나노초를 포함합니다.

그래서 나는 그 명령을~/.bash_logout

불행하게도 xterm을 닫아도 그러한 로그 파일이 생성되지 않습니다. 아마도 창문을 닫았기 때문이 아닐까 생각했습니다. 따라서 bash에서 bash를 시작하십시오.

bash
ls
exit

그러나 또다시 역사적 기록이 없습니다.

대부분의 경우 4~6개의 터미널이 열려 있지만 내가 모르는 기록 파일만 있습니다. 어떤 명령이 거기에 있는지 - 첫 번째 열린 쉘부터 시작하여 마지막 닫힌 쉘부터 시작합니까? 작동하는 동안 기록은 간섭하지 않으므로 하나의 셸 인스턴스에만 바인딩된 것 같습니다.

내가 관심 있는 것은 내 접근 방식이 실패한 이유와 매우 다른 접근 방식을 포함하여 이를 해결한 방법에 대한 설명입니다.

답변1

.bash_logoutBash는 쉘이 로그인 쉘인 경우에만 명령을 실행합니다.

# .bash_logout will print "hi"
$ cat .bash_logout
echo hi

# Start a new shell that is not a login shell
$ bash
$ shopt login_shell
login_shell     off

# On exit, it will not print "hi"
$ exit
exit

# Start a login shell
$ bash -l
$ shopt login_shell
login_shell     on

# On exit it will execute .bash_logout, and will print "hi"
$ exit
logout
hi

바라보다superuser.com의 답변해결하려는 문제에 대한 자세한 내용과 대체 솔루션을 알아보세요.

관련 정보