
나는 때때로 PROMPT_COMMAND
내가 제어하지 않고 어딘가에 있는 호스트 에 로그인합니다 readonly
. 어떤 방법이 있나요?이 문제를 해결하려면 다음을 실행하세요.history
주문하다그래도, 예를 들어 PS1
?를 사용해 보았습니다. 모든 프롬프트가 인쇄 PS1='$(history -a; history -c; history -r; echo finished)'
되지만 finished
작동하지 않는 것 같습니다.
- 동일한 호스트에서 두 개의 터미널 A와 B를 엽니다.
- 터미널 A에서 명령을 실행하십시오
a
. - 터미널 B에서 명령을 실행하십시오
b
. - B 단자를 두 번 누릅니다 ↑.
호스트가 있는 곳에서는 PROMPT_COMMAND='history -a; history -c; history -r;'
터미널 B가 표시됩니다 a
. PS1
그것으로 시작하는 호스트 에서는 $(history -a; history -c; history -r; echo finished)
두 터미널을 모두 열기 전에 실행되는 명령이 표시됩니다. 분명한 이유는in 명령은 PS1
서브쉘에서 실행됩니다.
또 다른 옵션은 전역 RC 파일을 완전히 우회하는 것입니다.
bash --rcfile ~/.bashrc
그러나 표준 값의 사용을 우회 PROMPT_COMMAND
하는 것이 가능합니다 .시스템 관리자가 승인하지 않음정책상의 이유로.
답변1
신호 처리기 내에서 기록 명령을 실행할 수 있으므로 하위 쉘이 필요하지 않습니다. 그런 다음 PS1
적절한 신호를 보냅니다.
trap 'history -a; history -c; history -r;' USR1
export PS1='$(kill -USR1 $$)'"$PS1"