Bashタブの完成により、変数にスペースが追加されます。

Bashタブの完成により、変数にスペースが追加されます。

.bashrcには多くのグローバル変数が定義されています。

 export mylogdir=/var/mylogs
 export myappdir=/opt/myapps

$ mylogdirをCDとして保存できます。ただし、$ mylogdirと入力すると、$ mylogdirのタブの完成部分にスペースが追加されます。

ls $myl[TAB] -> ls $mylogdir<space>

スペースを追加するためのオプションまたはプロセスを停止します。スペースは時々欲しいときに問題になる

cat $mylogdir/<space>logfile1.log

変数間の変換は常に<space>最後に追加されます。

バッシュバージョン=4.2.46

答え1

同様の問題を発見ここ。全体的に:

末尾のスペースは、compopt を使用して設定されたデフォルト設定です。次の方法で現在の動作を確認できます。

compopt <program>

次のコマンドを実行して動作を変更できます。

compopt +/-o <option> <program>

したがって、ls変数オートコンプリートからスペースを削除するには、次のように実行できます。

compopt -o nospace ls

永久に維持するには、次に追加できます。~/.bashrc

関連情報