【问题标题】:execute last output line of previous command in linux在linux中执行上一个命令的最后输出行
【发布时间】: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 tr​​ee

【问题讨论】:

    标签: linux shell


    【解决方案1】:

    如果最后一行可以安全运行,一个简单的命令,并且不包含空格或引号或任何其他 shell 需要解析/理解的内容,那么这应该可以工作(尽管您需要为此重新运行第一个命令)。

    $(!! 2>&1 | tail -n 1)
    

    话虽如此,我根本不推荐这个。如果您复制并粘贴或再次输入它会更简单(并且更安全并支持更复杂的命令)。

    您无法获得显示输出的最后一行,因此您需要重新运行该命令。

    您的终端可能支持快捷方式,让您可以复制和粘贴文本。 GNU screen 可以做到这一点。我相信rxvt-unicode 可能会通过 perl 脚本支持这一点。

    【讨论】:

    • 这假定command_not_found_handle 正在写入标准输出,而不是标准错误。 (可能是这样;我已经有一段时间没有使用过提供默认实现的发行版了。)
    • @chepner 非常正确。已编辑。我希望它至少不会直接写入终端。 =)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-30
    • 2011-09-18
    • 1970-01-01
    • 1970-01-01
    • 2015-05-21
    • 1970-01-01
    • 2012-10-16
    相关资源
    最近更新 更多