명령이 입력되지 않은 경우 zsh에서 명령을 실행하도록 설정

명령이 입력되지 않은 경우 zsh에서 명령을 실행하도록 설정

터미널 프롬프트에 입력하고 있지만 실제로는 아무 것도 입력하지 않기로 결정했다고 상상해 보세요. 대신 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 Functionszshmisc(1)맨페이지의 모든 섹션 , 특히 에 전달된 매개 변수에 대한 섹션을 읽어야 합니다 preexec.

또한 다음을 사용할 수 있습니다.add-zsh-hook:

autoload -Uz add-zsh-hook
add-zsh-hook -Uz precmd my_precmd

관련 정보