如何在 bash oneliner 中执行 grep 历史记录中的第一个匹配

如何在 bash oneliner 中执行 grep 历史记录中的第一个匹配

在命令上

history | grep vgh804

我得到以下结果。

   26  ssh -l vgh804 ssh-blah-blah
   29  ssh -l vgh804 ssh-blah-blah
   30  ssh -l vgh804 ssh-blah-blah
  103  ssh -l vgh804 ssh-blah-blah
  501  history | grep vgh804

我想执行第 26 行。但我想要一个通用且单行的解决方案。

var=$(history | grep vgh804 | head -n1 | awk {'print $1'}) && echo $var

给我

26

有什么办法可以将其与感叹号结合起来吗?就像是

history | grep vgh804 | head -n1 | awk {'print $1'} | !

然而,这不起作用,因为我无法通过管道传输!

答案1

仅当建立相同的 ssh 连接时,您才可以使用如下:

$!ssh

或者

$!26

相关内容