Unire due risultati del comando su una riga quando si reindirizza stdout


8

In uno script cron voglio registrare le temperature della CPU nel formato

[datetime] temp

usando datee acpi -t. Come posso reindirizzare ( >>) questi due comandi su una singola riga nel file di registro?

Risposte:


11

Prova semplicemente a fare:

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

È possibile che si desideri specificare un formato data compatto per rendere il file di registro più facile da analizzare e indipendente dalle impostazioni di ambiente / locale (qualcosa come $(date +"%Y%m%d %H%M%S")ad esempio).


4

bene forse su sistemi più vecchi (solaris8 fe ^^) senza bash:

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

1
Anche Solaris 8 comprende $(…), è conforme a POSIX. Ma devi usare /usr/xpg4/bin/shinvece di /bin/sh, Solaris 8 /bin/shè ancora una shell Bourne.
Gilles 'SO- smetti di essere malvagio' il

Ah, mai usato / usr / xpg4 / bin / sh, avremmo risparmiato qualche sforzo in quei giorni usando solo la shell Bourne.
lupo,

Come questo ...
mikiemorales, il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.