bashインタラクティブシェルからコマンドに「入力されたテキスト」を渡します。

bashインタラクティブシェルからコマンドに「入力されたテキスト」を渡します。

ユーザーがキーバインド|ショートカットを押すと、bashシェルでユーザーが入力したすべての内容をコマンドに渡したいと思います。

たとえば、Ctrl + bがバインディングであるとします。

bind '"\C-b": "myCommand.sh"' 

ユーザーは を入力tar czvし、ショートカットキーを押して文字列 "tar czv" を mycommand.sh に渡します。

これは可能ですか?私が考えることができる唯一の方法は、エコーして通過することです。

bind '"\C-b": " \e[1~ echo '\''\e[4~'\''| mycommand.sh\n"'

もっと良い方法がありますか?

ベストアンサー1

完全に理解したかどうかはわかりませんが、あなたの要件(?)に合うようです。

bind '"\C-b": "\C-a\C-kecho \'\'\\C-y\'\\' | myCommand.sh\n"'

引用がトリッキーになります。 ~/.inputrc では簡単です。

"\C-b": "\C-a\C-kecho \'\C-y\' | myCommand.sh\n"

エコーに加えて、スクリプトにコマンドライン引数を使用させるのはどうですか?再度〜/.inputrcから:

"\C-b": "\'\C-amyCommand.sh \'\n"

おすすめ記事