0

プログラムのタブ補完を bash に追加しました。それは非常にうまく機能しますが、単語の部分的な完了を処理する方法がわかりません。例: ユーザーの種類

./program /home/user/De

そしてTABを押します。これが完了すると、

./program /home/user/Desktop/ 

、しかし、「デスクトップ/」の後に末尾の空白があり、これは私が望むものではありません. 基本的に、完成した単語の後に bash が空白を追加するのを防ぐ方法が必要です。

パスに bash の補完を使用したくありません。

編集:これは不明なようです。TAB が押されると、私のタブ補完機能がどの単語を補完するかを見つけます (この場合、それは '/home/user/De' です)。次に、一致のリストを生成します (この場合、唯一の一致は「/home/user/Desktop」です)。Bash はこのリストを使用して実際の補完を行います。「/home/user/De」を「/home/user/Desktop/」に変更します。「デスクトップ/」の後にbashがその空白を追加しないようにしたい。

4

1 に答える 1

0

スピーチマークで試してみましたか?

./program "/home/user/[tab]"

合計でこの質問について確信が持てません:) bashは実際にオートコンプリートを行います.bashがあなたのために行うことをオートコンプリートするスクリプトをどのように書いたのかわかりません-

とにかく...あなたはbashに余分なスペースを追加したくないと述べました-bashを書き直すか追加する予定がない限り-これは不可能です

代わりに、これは空白を削除するために独自のコードに追加する必要があるものです。試す

var1=${var1//[[:space:]]}

var1 が入力の変数名である値を取得した後

于 2012-10-23T10:42:16.940 に答える