Bash-Funktion: Aktuelle Befehlszeile abrufen

Bash-Funktion: Aktuelle Befehlszeile abrufen

Ich mache oft so etwas:

tail -f logs/`ls -rt logs | tail -1`/debug.log

Ich hätte gerne ein Makro für ls -rt <some_dir> | tail -1, aber es muss im Kontext der aktuellen Befehlszeile funktionieren ( <some_dir>aus der aktuellen Befehlszeile abgerufen werden). Gibt es eine Möglichkeit, das zu tun?

Etwas wie:

tail -f logs/$(LAST)/debug.log

Antwort1

Wenn Sie nicht an die Bestimmung <some_dir>innerhalb eines Unterbefehls gebunden sind, können Sie den gleichen Effekt mit ... erzielen.

tail -f `ls -drt logs/* | tail -1`/debug.log

Die -dUrsachen lsumfassen vollständige Pfade von Übereinstimmungen, aber Sie benötigen die Nachkommastellen, /*so dass es dieDateieninnerhalb des Verzeichnisses statt im Verzeichnis selbst.

Antwort2

Mit dieser Option $0erhalten Sie den aktuellen Befehl und $*die Parameter. Probieren Sie echo $0 $*aus, ob das hilft. Natürlich können Sie diese bei Bedarf auch anderen Variablen zuweisen.

verwandte Informationen