홈>
일반적으로 chpwd () 훅을 제공하는 zsh를 사용하고 있습니다. 즉, cd 내장에 의해 cwd가 변경되면 zsh는 chpwd () 메소드가있는 경우이를 자동으로 호출합니다. 이를 통해 cwd에 따라 변수 및 별명을 설정할 수 있습니다.
이제 내 .zshrc 비트를 bash로 이식하고 싶지만 chpwd ()가 bash에서 인식되지 않는다는 것을 알았습니다. 비슷한 기능이 이미 bash에 있습니까? CD 재정의가 작동한다는 것을 알고 있지만 (아래 참조)보다 우아한 솔루션을 목표로하고 있습니다.
function cd()
{
builtin cd [email protected]
chpwd
}
- 답변 # 1
- 답변 # 2
맞춤
다른 현대 쉘과 비교할 때 Bash에서 설계된 완벽한 후크 시스템은 없습니다. 와이즈 비즈 변수는chpwd
를 정의하는 것이 더 좋은 해결책 일 수 있습니다 훅.PROMPT_COMMAND
에 해당하는 후크 함수로 사용됩니다. ZSH,precmd
에 연결 물고기에서. 당분간 ZSH는fish_prompt
가있는 유일한 쉘입니다. 내장 후크. 와이즈 비즈 위즈 위즈 배쉬에 연결chpwd
를 설정하는 트릭이 제공됩니다PROMPT_COMMAND
If set, the value is interpreted as a command to execute before the printing of each primary prompt ($PS1).
https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Bash-Variables
사용법chpwd
chpwd
출처 : 내 요지에서 배쉬에 chpwd 등가 후크 만들기
PROMPT_COMMAND
관련 질문
- bash : 세게 때리다. 임시 디렉토리를 사용할 수 없습니다
- bash : IO 스트림에 대한 일반적인 분할+병합 구문 찾기
- linux : 이 별칭의 따옴표에 문제가 있습니까?
- bash를 사용하여 모든 하위 디렉토리의 모든 파일에서 특정 문자 변경
- bash : zsh: 터미널에 전체 디스크 액세스 권한이 있으면 권한이 거부되었습니다.
- npm 명령은 zsh에서 찾을 수 없지만 bash에서는 찾았습니다.
- linux : 여러 프로세스를 모니터링하기 위해 루프를 사용하여
- bash : 모든 직속 하위 디렉토리에서 명령 실행
- bash 프로필/zshrc에 환경 변수 내보내기를 포함해야 합니까?
- Bash 스크립트 오류 "해당 파일이나 디렉토리가 없습니다"
디버그
trap
를 사용해야합니다 또는PROMPT_COMMAND
.예 :
PROMPT_COMMAND
에 정의 된 함수 빈 프롬프트라도각프롬프트 전에 실행됩니다.