(2x) zsh: 명령을 찾을 수 없습니다

(2x) zsh: 명령을 찾을 수 없습니다

나는 마침내 큰 결심을 하고 zsh를 시험해 보기로 결정했습니다. CentOS 7 시스템에서 실행 중입니다. 나에게 이상하게 보이는 유일한 점은 어떤 이유에서인지 알 수 없는 명령을 입력할 때마다 명령을 찾을 수 없다는 메시지가 두 번 표시된다는 것입니다.

예를 들어 "실패"를 입력하면

zsh: fail: command not found...
zsh: command not found: fail

나는 평생 동안 왜 이런 일이 발생하는지 알 수 없으며 이 문제를 겪고 있는 것으로 보이는 다른 사람을 찾을 수도 없습니다. 어쩌면 내 Google-fu가 충분히 강력하지 않을 수도 있지만 어떤 조언이라도 대단히 감사하겠습니다.

지금까지 내 .zsh는 기본입니다.

HISTFILE=~/.histfile
HISTSIZE=10000
SAVEHIST=10000

bindkey -e


zstyle :compinstall filename '/home/bmgraves/.zshrc'
autoload -Uz compinit
compinit

배쉬와 함께:

bash: fail: command not found...

tcsh:

fail: Command not found.



print $+functions[command_not_found_handler]

+zsh:2> print 1
 1

zsh -x:

+zsh:7> fail
+command_not_found_handle:1> local 'runcnf=1'
+command_not_found_handle:2> local 'retval=127'
+command_not_found_handle:5> [[ $- -regex-match i ]]
+command_not_found_handle:8> [ '!' -S /var/run/dbus/system_bus_socket ']'
+command_not_found_handle:11> [ '!' -x /usr/libexec/packagekitd ']'
+command_not_found_handle:14> [ ']'
+command_not_found_handle:17> [ 1 -eq 1 ']'
+command_not_found_handle:18> /usr/libexec/pk-command-not-found fail
zsh: fail: command not found...
+command_not_found_handle:19> retval=127
+command_not_found_handle:26> return 127
zsh: command not found: fail

답변1

명령을 찾을 수 없을 때,zsh는 이 함수를 호출합니다.command_not_found_handler. 이 기능의 일반적인 용도는 명령이 배포판의 일부이지만 아직 설치되지 않은 패키지의 일부인 경우 명령을 설치하는 방법을 제안하는 것입니다.

zsh에서 함수가 0이 아닌 상태를 반환하면 zsh는 일반적인 오류 메시지를 인쇄합니다. Bash에는 유사한 기능(함수 호출 command_not_found_handle)이 있지만 약간의 차이가 있습니다. bash에서 명령이 0이 아닌 상태를 반환하면 bash는 오류 메시지를 인쇄하지 않습니다.

추적을 보면 다음을 사용하고 있는 것 같습니다.아 맙소사. 이는 pk-command-not-foundFedora의 명령을 찾을 수 없음 처리기를 호출하고 있으며 bash용으로 설계되었기 때문에 자체 오류 메시지를 인쇄합니다. 오류 메시지 중 하나를 억제하는 확실한 방법이 없습니다. 이것이 정말로 귀찮다면 command-not-foundoh-my-zsh 구성에서 플러그인을 제거할 수 있습니다. (이 경우 저장소에서 사용할 수 있지만 설치되지 않은 경우 명령이 포함된 패키지를 설치하라는 메시지가 표시되지 않습니다.)

관련 정보