So führen Sie die erste Übereinstimmung aus einem Grep des Verlaufs in einem Bash-Einzeiler aus

So führen Sie die erste Übereinstimmung aus einem Grep des Verlaufs in einem Bash-Einzeiler aus

Auf Befehl

history | grep vgh804

Ich erhalte folgendes Ergebnis.

   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

Ich möchte Zeile 26 ausführen. Ich möchte aber eine Lösung, die verallgemeinert werden kann und nur aus einer Zeile besteht.

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

Gibt mir

26

Gibt es eine Möglichkeit, dies mit dem Ausrufezeichen zu kombinieren? So etwas wie

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

Dies funktioniert jedoch nicht, da ich keine Weiterleitung zu ! durchführen kann.

Antwort1

Sie können Folgendes nur verwenden, wenn dieselbe SSH-Verbindung hergestellt wird:

$!ssh

ODER

$!26

verwandte Informationen