hey.sh
이 예에서 각 bash 명령 뒤에 이름이 지정된 스크립트를 호출할 수 있습니까?
예를 들어 ls
Enter 키를 누르고 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