シェルスクリプトにTabショートカットを追加できますか?

シェルスクリプトにTabショートカットを追加できますか?

入力があるときにシェルのTabショートカットを使用してオートコンプリートできますか?

このように:

ここに画像の説明を入力してください。

「test」と入力してTabショートカットを押すと、「test」が自動的に「test.md」になります。

提案を歓迎します!

ベストアンサー1

これを使用して、rlwrapほとんどすべてのコマンドラインプログラム(シェルスクリプトを含む)にreadlineサポート(完成と履歴/呼び出しを含む)を追加できます。

詳細については、参考資料を参照しman rlwrapて、rlwrapの使用に関するより具体的なアドバイスが必要な場合は、最小限のサンプルシェルスクリプトを含めるように質問を編集してください。

rlwrapほとんどのLinuxディストリビューションではすでにパッケージ化されており、以下からソースコードを見つけることができます。https://github.com/hanslub42/rlwrap

ところで、debian rlwrapパッケージの説明フィールドには次のものが表示されます。

Description-en:readline関数コマンドラインラッパーこのパッケージは、GNU readlineライブラリを使用して他のコマンドのキーボード入力を編集するための小さなユーティリティを提供します。入力履歴は、各コマンドごとに個別にコール全体に記憶されます。 bashのように、レコードの完了と検索は、完了した単語のリストをコマンドラインに割り当てることができます。

ところで、マニュアルページに記載されている1つの有用な内容は次のとおりです。

シェルスクリプトでは、読み取りの代わりに「ワンショット」モードでrlwrapを使用してください。

order=$(rlwrap -pYellow -S 'Your pizza? ' -H past_orders -P Margherita -o cat)

これは、次のようなものを置き換える役割を果たします。read -p 'Your order? ' order

おすすめ記事