터미널 프롬프트에 입력하고 있지만 실제로는 아무 것도 입력하지 않기로 결정했다고 상상해 보세요. 대신 Enter 키만 누르면 됩니다.
지금 zsh가 명령을 실행하도록 하는 방법이 있습니까?
z
예를 들어 마지막 명령을 반복하거나 마지막 명령이 빈 프롬프트에서 Enter 키를 누르면 run 을 실행하는 등 잠재적으로 이 명령 변수를 만들고 싶습니다 echo $PWD
.
어떻게 해야 하나요?
답변1
preexec
다음을 사용 하여 연결해 볼 수 있습니다 precmd
.
preexec(){ cmd=$1; }
precmd(){ if [ "$cmd" ]; then lcmd=$cmd; cmd=; else; echo "<no command> last was <$lcmd>"; fi; }
zsh$ :
zsh$
<no command> last was <:>
zsh$ pwd
/home2/ahq
Hook Functions
zshmisc(1)
맨페이지의 모든 섹션 , 특히 에 전달된 매개 변수에 대한 섹션을 읽어야 합니다 preexec
.
또한 다음을 사용할 수 있습니다.add-zsh-hook
:
autoload -Uz add-zsh-hook
add-zsh-hook -Uz precmd my_precmd