Bashでコマンド置換の結果を拡張して編集するには?

Bashでコマンド置換の結果を拡張して編集するには?

$(<cmd>)Bashでコマンド置換の結果を拡張して編集できますか?

<cmd>これが私が実行したい別のコマンドにつながるとしましょう。実際には$(<cmd>)コマンドは実行されますが表示されないため、もう一度戻ってhistory編集することはできません。

この問題を解決した唯一の方法は、出力を$(<cmd>)変数に割り当ててcmd=$(<cmd>)から、次pbcopyを使用してクリップボードにエコーすることでした。 macOS echo $cmd | pbcopy

答え1

現在のコマンドラインからすべてのシェル置換項目を拡張できます。

シェル延長ケーブル(MCe)- シェルのように線を拡張します。これは、エイリアスと履歴の拡張だけでなく、すべてのシェルワード拡張(シェル拡張ビュー)。

かちりと言う音: Ctrl+ Esc+ e

例:

$ echo $(curl -s ifconfig.io)
# press ctrl+esc+e,
# command line will switch to:
$ echo 151.101.1.69

コマンドラインとの混乱を避ける-sために追加しました。他のコマンドでは使用する必要があります。curlstderr2> /dev/null

答え2

私はAppleではなくラップトップでKubuntuのBashを使用しています。Ctrl+ Alt+e以下を含むコマンドラインから多くの機能を拡張しました$(whatever)。キーストロークがMacキーボードにどのように「変換される」のか分かりません。ポイントはトリガーですshell-expand-line注文する。

メモ:

  • エラーはwhateverプロセスを中断する可能性があります。
  • 他のものもインラインに拡張されます。
  • 参照が失われます

$(whatever)だから最初に入力して展開し、残りを追加するのが良いと思います。

関連情報