私はbashシェルを使用しており、コマンドが実行された後に表示されるコマンドプロンプトにコマンド出力が直接表示されます。
私のアイデアを説明するために考えた例は次のとおりです。
locate create_tables.sql|MAGIC_command
user@localhost:~# /usr/share/doc/phpmyadmin/create_tables.sql
次に、次のようにdsubstitutionコマンドを使用します。
sudo $(locate create-tables.sql)
有効ですが 即時実行出力される前に編集できるようにしたいです。どのような方法がありますか?
答え1
Emacsモードではsudo $(locate create-tables.sql)
、、、+を入力しますEsc。Controle
shell-expand-line
バラよりバッシュリファレンスマニュアル:
シェルのように線を広げます。エイリアスと履歴の拡張だけでなく、すべてのシェルワード拡張も行われます。
答え2
私は主にこのようなことをするときにクリップボードを使います。
$ some_command | cb
$ cb_edit
$ `cb` #or paste it with your paste button/shortcut
魔法:
cb() {
if [ ! -t 0 ]; then
#if somebody's piping in reproduce input and pipe a copy to the clipboard
tee >(xclip -selection c)
else
#otherwise, print the contents of the clipboard
xclip -selection c -o
fi
}
cb_edit() { cb | vipe "$@" | cb; }
答え3
あまりエレガントな解決策は、出力をいくつかのtmpfileに保存し、そのファイルを編集して次のように実行することです。
$ locate create_tables.sql > /tmp/tmpfile
$ vi !$ # last argument of last command
$ bash !$