直到3小时构建脚本的中途,我才会记得我想在输出结束后看到输出开头的内容.此时我已超过终端中的行数,因此我无法向上滚动查看它(或者开头很难找到).当然,我可以更好地存储我的输出,但我一直很好奇,如果这是可能的.
在linux shell中,是否可以返回最后一个命令的输出.我意识到我可以管道它或将输出发送到文件,但我的要求是在命令运行后检索该输出.
使用csh,但会听到任何shell.
Nic*_*ght 33
不会.程序的输出永远不会通过shell的手.没有重定向,它直接进入TTY.通过重定向,它可以直接转到它所指向的任何文件或管道.shell不知道进程发送到stdout/stderr的是什么.
sar*_*old 19
script(1) 正是您所需要的:
script
make
exit
vim typescript
Run Code Online (Sandbox Code Playgroud)
该script程序将启动一个新的外壳,节省输入和输出到typescript文件中.当你完成后,只需用exit或关闭shell ^D.如果您不想启动新shell而只是运行构建,则可以使用:script -c <command>.
如果再次运行命令不会改变任何东西,你可以使用!! 访问历史堆栈的顶部以重新运行最后一个命令.在反引号中执行此操作将允许您使用结果.
$> find . -iname fileInUnknownLocationInHierarchy.txt
./something/buried/deep/where/you/dont/want/to/retype/fileInUnknownLocationInHierarchy.txt
$> vim `!!`
Run Code Online (Sandbox Code Playgroud)