나는 내 자신을 창조했다운영 체제. 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