7

次のように ~/.bashrc に変数をエクスポートしました (その後にソース ~/.bashrc が続きます)

export w=/home/user/workspace/

コマンドラインを使用しているとき、次の方法で $w のサブディレクトリにアクセスしようとします

user$ vi $w/

このあとタブキーを押すと謎のバックスラッシュが出る

user$ vi \$w/

それ以上のタブ補完を無効にします。なんで?viであっても発生するため、特定できない場合がありlsます。

Ubuntu 11.04 を実行する Bash バージョン 4.2.24(1)-release (i686-pc-linux-gnu)

回避策の編集: タブを押す前に Esc+Ctrl+E を押します。

4

1 に答える 1

3

Bash は少し賢いですが、それほど賢くはありません。変数を展開してから、評価されるディレクトリまでタブで完了することはできません。したがって、バックスラッシュがタブ補完を「無効にする」のではなく、bash が補完の提案を見つけることができないという事実です。

パスに実際に環境変数がある場合、補完が役に立たないことを考えると、補完がまったく役立つ唯一の方法は、文字通りのドル記号を入力するつもりだった場合です。bash は、何かを完成させようとすることに熱中しているだけだと思います。

それでも、あなたの場合は完了に失敗するだけでなく、入力した内容の意味も変更するため、バグと呼んでいます。

于 2012-10-09T04:45:14.597 に答える