重用Bash中最后一条命令的输出


Answers:


184

您可以$(!!) 用来重新计算(而不是重复使用)最后一条命令的输出。

!!自身执行的最后一个命令。

$ echo pierre
pierre
$ echo my name is $(!!)
echo my name is $(echo pierre)
my name is pierre

9
您可以$(your_cmd)使用反引号`your_cmd`来避免键入错误:根据Gnu Bash手册,它们在功能上是相同的。当然,这也要受到@memecs提出的警告

在实践中,命令的输出是确定性的,因此我不会为它的重新计算而烦恼。当您要执行诸如git diff $(!!)上一条命令被find调用之类的操作时,它当然很有用。
Sridhar Sarnobat '18 -4-4

显然有充分的理由使用$()而不是反引号。但是可能没有什么可以失去睡眠的。github.com/koalaman/shellcheck/wiki/SC2006
Michael Crenshaw

@ user2065875尽管反引号在Bash中仍然有效,但不推荐使用$()
kurczynski
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.