compgenを使用したファイル名の自動補完

compgenを使用したファイル名の自動補完

私が書いているより大きなオートコンプリート機能の一部としてcompgenを使用してファイルのリストを生成したいと思います。私はcompgenbashのマニュアル項目を読んで、completeそこでそのオプションが-G "*"解決策になると思いました。しかし、動作させることはできません。入力内容が何であれ、現在のディレクトリのファイルのリストが表示されます。例:

$ cmd <Tab>
aa bb cc
$ cmd a<Tab>
aa bb cc
$ cmd aa<Tab>
aa bb cc

だから私はcompgenと同じオプションをサポートするを使ってデバッグしようとしましたが、complete同じ結果を得ました。

$ complete -G "*" cmd
$ cmd a<Tab>
aa bb cc

私もやってみましたが、complete -o filenamesそれもできませんでした。

ベストアンサー1

自分で答えを見つけました。私は次のオプションを使用する必要がありました-A action

compgen -o filenames -A file ...
complete -o filenames -A file

おすすめ記事