bash ワンライナーで履歴の grep から最初の一致を実行する方法

bash ワンライナーで履歴の 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

関連情報