Ausgabetext eines Befehls als Dateinamen verwenden

Ausgabetext eines Befehls als Dateinamen verwenden

curl http://v6.ipv6-test.com/api/myip.phpgibt mir meine aktuelle IPv6-Adresse zurück.

Ich möchte diese Zeichenfolge als Teil eines zu erstellenden Dateinamens verwenden, gefolgt vom Zeitstempel der Skriptausführung.

Irgendeine Idee, wie das gemacht werden könnte?

Antwort1

Um das Ergebnis einer Zeichenfolge als Variable zu verwenden, verwenden Sie die $(command)Konstruktion (auch bekannt alsBefehlsersetzung):

whatevercommand >$(curl http://v6.ipv6-test.com/api/myip.php)-$(date '+%F@%T')

In diesem speziellen Fall ist dies jedoch etwas gefährlich, da bei Netzwerkproblemen etwas Unerwartetes auftreten kann. Daher ist es am besten, die Adresse separat abzurufen:

myip=$(curl http://v6.ipv6-test.com/api/myip.php)
[[ $? -ne 0 ]] && exit 1
whatevercommand >$myip-$(date '+%F@%T')

In der Praxis können Sie Ihre IPV6-Adresse mithilfe von erhalten ip address show.

verwandte Informationen