모든 bash 명령 후에 스크립트를 호출하는 방법

모든 bash 명령 후에 스크립트를 호출하는 방법

hey.sh이 예에서 각 bash 명령 뒤에 이름이 지정된 스크립트를 호출할 수 있습니까?

예를 들어 lsEnter 키를 누르고 ls run을 입력하면 hey.sh실행됩니다.

그럼 당신은 입력cd .. (또는 다른 명령), cd hey.sh등이 실행됩니다.

답변1

PROMPT_COMMAND+="hey.sh;"

PROMPT_COMMAND 설정된 경우 이 값은 각 기본 프롬프트가 실행되기 전에 명령으로 실행됩니다.


참고: 환경 변수 및 쉘 변수

기본적으로 PROMPT_COMMAND아니요하나환경 변수. 이건 그냥쉘 변수.

두 유형의 변수는 모두 같은 방식으로 액세스되지만( "$variable*")환경 변수자식 프로세스에 의해 상속되지만쉘 변수아니요.

관례는 대문자로환경 변수+ 쉘에 대한 쉘 변수를 구성하십시오(PROMPT_COMMAND는 쉘을 구성합니다). 그러나 다른 유형의 변수는 소문자로 유지하십시오.

존재하다세게 때리다, 다음을 수행할 수 있습니다. declare -p변수가 내보내졌는지 확인합니다(=는 환경 변수입니다).

$ declare -p PATH
declare -x PATH=... #-x means it's exported
$ declare PROMPT_COMMAND
declare -- PROMPT_COMMAND=... #no -x so just a shell variable

관련 정보