例: コマンドが見つかりません。

例: コマンドが見つかりません。

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

関連情報