예: 명령을 찾을 수 없습니다.

예: 명령을 찾을 수 없습니다.

나는 내 자신을 창조했다운영 체제. Bash를 열고 서브셸에 로그인할 때마다 다음 오류가 발생합니다.

-bash: have: command not found
-bash: have: command not found
-bash: have: command not found
-bash: have: command not found
-bash: have: command not found
-bash: have: command not found
-bash: have: command not found

여러 번 표시됩니다. 디버깅하기 위해 다음 명령을 실행했습니다.

bash --login -x

산출:

+ source /etc/locale.conf
++ LANG=en_US.UTF-8
+ for f in '/etc/bash_completion.d/*'
+ '[' -e /etc/bash_completion.d/grub ']'
+ source /etc/bash_completion.d/grub
+++ echo grub-set-default
+++ sed s,x,x,
++ __grub_set_default_program=grub-set-default
++ have grub-set-default
bash: have: command not found
++ unset __grub_set_default_program
+++ sed s,x,x,
+++ echo grub-reboot
++ __grub_reboot_program=grub-reboot
++ have grub-reboot
bash: have: command not found
++ unset __grub_reboot_program
+++ echo grub-editenv
+++ sed s,x,x,
++ __grub_editenv_program=grub-editenv
++ have grub-editenv
bash: have: command not found

출력 내용이 너무 길어서 여기에 붙여넣을 수 없습니다. 하지만 이 스니펫에는 오류가 표시됩니다. /etc/bash_completion.d/grub파일 에 오류가 있습니다 . 파일이 호출되었습니다 have. grub을 다시 설치해도 오류가 해결되지 않았습니다. 그렇다면 이 오류를 어떻게 수정하나요?

답변1

Linux에서 bash 완성 기능이 누락된 것 같습니다.

이 기사도 참조하세요Bash 완료를 위한 "have" 키워드

답변2

Debian 서버를 업데이트한 후 문제가 발생했습니다:

bigbear3001@server:/etc/openvpn$ sudo su -
-su: have: command not found
-su: have: command not found
...

마지막에 /usr/share/bash-completion/bash_completion에서 다음 줄을 주석 처리하여 문제를 해결했습니다.

unset -f have
unset have

have물론 모든 스크립트를 수정하는 대신 다음을 사용할 수도 있습니다._have

답변3

설치 후에도 동일한 문제가 발생했습니다.자식 완성. 이 문자열에 주석을 달면 문제가 해결됩니다..bashrc:

#Git completion script
#for file in /etc/bash_completion.d/* ; do 
#       source "$file"
#done

이제 명확하게 작동합니다.

user@linux~>

그리고는 아니다

 have: command not found
 have: command not found
 have: command not found
 have: command not found
 have: command not found
 have: command not found
 have: command not found
 have: command not found
 have: command not found
 have: command not found
 have: command not found
 have: command not found
 have: command not found
 have: command not found
 have: command not found

관련 정보