输出命令直接输出到命令行,非变量

led*_*awg 5 bash line-editor command-substitution

我在 bash shell 上,我希望命令的输出直接出现在命令执行后出现的命令提示符中!

我设想的示例,以说明我的想法:

locate create_tables.sql|MAGIC_command
user@localhost:~# /usr/share/doc/phpmyadmin/create_tables.sql
Run Code Online (Sandbox Code Playgroud)

现在,像这样使用 comman dsubstitution

sudo $(locate create-tables.sql)
Run Code Online (Sandbox Code Playgroud)

工作但 立即执行输出,我希望能够之前编辑它。有办法吗?

Evg*_*gin 5

在 Emacs 模式下输入sudo $(locate create-tables.sql), Esc, Control+e

shell-expand-line的Bash参考手册

像 shell 一样展开该行。这将执行别名和历史扩展以及所有 shell 单词扩展


Jak*_*uje 2

不是很优雅的解决方案是将输出存储到某个 tmpfile 中,编辑该文件,然后运行:

$ locate create_tables.sql > /tmp/tmpfile
$ vi !$    # last argument of last command
$ bash !$
Run Code Online (Sandbox Code Playgroud)