コマンド置換 $(...) で最初の非トークンを使用した Bash タブの完了時にエラーが発生する

コマンド置換 $(...) で最初の非トークンを使用した Bash タブの完了時にエラーが発生する

最初のコマンドでタブ補完を有効にする$(...)

cat $(w

ボールを打つと、tab私はいつものように潜在的な完了を得る。

$ cat $(w
w                   wc                  which               wicd-client         wofm2opl            wpa_supplicant

しかし、最初の場所ではない場合、bashは奇妙なエラーを表示します。

$ cat $(which w

プログラム

$ cat $(which w-bash: unexpected EOF while looking for matching `)'
-bash: syntax error: unexpected end of file

shコマンド置換構文は、最初の位置に対して同じ期待される動作を示しますが、後続の位置ではそうではありません。

$ cat `w
w                   wc                  which               wicd-client         wofm2opl            wpa_supplicant

$ cat `which w

オートコンプリート機能はまったくありません。

答え1

明らかにターミネーターを探していますが)、その後はタブを押すことはできません。cat $(which w なぜならw自分で行う必要があるからです。一部のパラメーター名を入力すると、bash完了がパラメーターの完成のためではないようです。コマンド完成のためです。

このbashをインストールした後、この動作を試してください。おそらくほとんどの作業を行います。

    yum install bash-completion 
    source /etc/bash_completion 

関連情報