【发布时间】:2011-08-22 18:30:51
【问题描述】:
我希望能够在后续命令中使用上次执行命令的结果。例如,
$ find . -name foo.txt
./home/user/some/directory/foo.txt
现在假设我希望能够在编辑器中打开文件,或者删除它,或者用它做其他事情,例如
mv <some-variable-that-contains-the-result> /some/new/location
我该怎么做?也许使用一些 bash 变量?
更新:
为了澄清,我不想手动分配东西。我所追求的是内置 bash 变量之类的东西,例如
ls /tmp
cd $_
$_ 保存前一个命令的最后一个参数。我想要类似的东西,但输出的是最后一个命令。
最终更新:
赛斯的回答效果很好。要记住的几件事:
- 第一次尝试解决方案时不要忘记
touch /tmp/x - 只有在最后一个命令的退出代码成功时才会存储结果
【问题讨论】:
-
看到您的编辑后,我想删除我的答案。我想知道您是否正在寻找任何内置的东西。
-
我找不到任何内置的东西。我想知道是否有可能实现它..也许通过.bahsrc?我认为这将是一个非常方便的功能。
-
恐怕您只能将输出重定向到文件或管道或捕获它,否则将无法保存。
-
没有shell和终端的配合是不行的,一般是不配合的。另见How do I reuse the last output from the command line? 和Using text from previous commands' output Unix Stack Exchange。
-
没有捕获命令输出的主要原因之一是因为输出可以任意大 - 一次很多兆字节。当然,并不总是那么大,但大输出会导致问题。
标签: linux bash command-line