私は自分自身を作成しましたオペレーティングシステム。 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