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 ( )?

David Thorisson
quelle

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.).

Matte
quelle
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
Wolf
quelle
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