【发布时间】:2014-11-04 13:57:50
【问题描述】:
如何通过快捷方式在 linux bash 终端中执行上一条命令的最后输出行?
例如:
$ tree
The 'tree' is currently not installed. You can install it by running:
sudo apt-get install tree
我想复制执行 sudo apt-get install tree
【问题讨论】:
如何通过快捷方式在 linux bash 终端中执行上一条命令的最后输出行?
例如:
$ tree
The 'tree' is currently not installed. You can install it by running:
sudo apt-get install tree
我想复制执行 sudo apt-get install tree
【问题讨论】:
如果最后一行可以安全运行,一个简单的命令,并且不包含空格或引号或任何其他 shell 需要解析/理解的内容,那么这应该可以工作(尽管您需要为此重新运行第一个命令)。
$(!! 2>&1 | tail -n 1)
话虽如此,我根本不推荐这个。如果您复制并粘贴或再次输入它会更简单(并且更安全并支持更复杂的命令)。
您无法获得显示输出的最后一行,因此您需要重新运行该命令。
您的终端可能支持快捷方式,让您可以复制和粘贴文本。 GNU screen 可以做到这一点。我相信rxvt-unicode 可能会通过 perl 脚本支持这一点。
【讨论】:
command_not_found_handle 正在写入标准输出,而不是标准错误。 (可能是这样;我已经有一段时间没有使用过提供默认实现的发行版了。)