回答:
.bashrcに次のフラグメントがあるかどうかを確認します(デフォルトで存在するはずです)
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
bash-completion
これが機能するためにはパッケージが必要であることを付け加えたいと思います。奇妙なことに、私の会社の標準インストールにはこのパッケージがありません。
私はまた、bash補完の失敗について次の追加の説明を追加すると思いました-コメントには長すぎて、bash補完に問題がある人には役立つかもしれません、おそらくこれは「一般的な」標準的な質問すべての重複が参照されます。
あなたは、あなたの中で適切なラインを持っていたとしても.bashrc
(上記の回答のように)とbash-completion
あなたはどちらか持っている場合はパッケージがインストールされ、bashの補完することができ、まだ故障shopt -s nullglob
やshopt -s failglob
、あなたの中.bashrc
か.bash_aliases
。
次のシナリオは、すべてのユーザのカスタマイゼーションを用いて試験した.bashrc
と.bash_aliases
の適切なbashの完了ラインと、公正なテストを与えるために除去.bashrc
存在しと共にbash-completion
インストールされています。
1)最初のシナリオはshopt -s failglob
、.bashrc
またはにいる場合です.bash_aliases
。
それぞれ完全なディレクトリとファイルをタブで表示しようとすると、次のエラーが発生します。
cd Dbash: no match: "${COMP_WORDS[@]}"
cat pabash: no match: words[0]=${!ref}${COMP_WORDS[i]}
ただし、コマンドは引き続き正常に完了します。
2)shopt -s nullglob
有効にすると、ディレクトリまたはファイルをタブ補完しようとすると、代わりにすべてがリストされ、補完されません:
cd Do
.adobe/ .gimp-2.6/ Podcasts/
.aptitude/ .gnome2/ Public/
.audacity-data/ .gnome2_private/ .pulse/
............
非常に長く、すべてを再現する必要がないため、ここでリストを短くしました。
繰り返しますが、コマンド補完は引き続き機能します。
そのため、適切な行がインストールされていると仮定して、bashの完了に関するエラーの問題を削除するshopt -s failglob
か、shopt -s nullglob
解決することもできます。.bashrc
bash-completion
Ubuntu 14.04.01への更新
.bashrcに次のフラグメントがあるかどうかを確認します(デフォルトで存在するはずです)
sudo vim /etc/bash.bashrc(「i」と入力してファイルを編集します)
# enable bash completion in interactive shells
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
7行上のコメントを外します
保存ファイル「esc + w + q + enter」
bashを再起動します
exec bash