Führen Sie zwei Befehlsergebnisse in einer Zeile zusammen, wenn Sie stdout umleiten


8

In einem Cron-Skript möchte ich die CPU-Temperaturen im Format protokollieren

[datetime] temp

mit dateund acpi -t. Wie kann ich >>diese beiden Befehle in eine einzelne Zeile in der Protokolldatei umleiten ( )?

Antworten:


11

Versuchen Sie einfach:

echo $(date) $(acpi -t) >> your_log_file

Möglicherweise möchten Sie ein kompaktes Datumsformat angeben, um das Parsen Ihrer Protokolldatei zu vereinfachen und unabhängig von den Einstellungen für Umgebung / Gebietsschema zu sein ( $(date +"%Y%m%d %H%M%S")z. B.).


4

naja vielleicht auf älteren systemen (solaris8 fe ^^) ohne bash:

x=`date '+%Y%m%d %H%M%S'`; y=`acpi -t`; echo "$x $y" >>your_log_file

1
Selbst Solaris 8 versteht $(…), dass es POSIX-kompatibel ist. Aber Sie müssen /usr/xpg4/bin/shstattdessen verwenden /bin/sh, Solaris 8 /bin/shist immer noch eine Bourne-Shell.
Gilles 'SO - hör auf böse zu sein'

Aaah, nie verwendet / usr / xpg4 / bin / sh, wir hätten damals einige Anstrengungen gespart, wenn wir nur die Bourne-Shell verwendet hätten.
Wolf

Wie dieser ...
mikiemorales
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.