Mesclar dois resultados de comando em uma linha ao redirecionar stdout

8

Em um script cron, quero registrar as temperaturas da CPU no formato

[datetime] temp

usando datee acpi -t. Como redirecionar ( >>) esses dois comandos para uma única linha no arquivo de log?

David Thorisson
fonte

Respostas:

11

Tente simplesmente fazer:

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

Convém especificar um formato de data compacto para tornar seu arquivo de log mais fácil de analisar e ser independente das configurações de ambiente / localidade (algo como, $(date +"%Y%m%d %H%M%S")por exemplo).

Esteira
fonte
4

bem, talvez em sistemas mais antigos (solaris8 fe ^^) sem bash:

x=`date '+%Y%m%d %H%M%S'`; y=`acpi -t`; echo "$x $y" >>your_log_file
Lobo
fonte
1
Até o Solaris 8 entende $(…), é compatível com POSIX. Mas você precisa usar, em /usr/xpg4/bin/shvez de /bin/sh, o Solaris 8 /bin/shainda é um shell Bourne.
Gilles 'SO- stop be evil'
Aaah, nunca usei / usr / xpg4 / bin / sh, teríamos poupado alguns esforços naqueles dias usando apenas o shell Bourne.
Lobo #
Como este ...
mikiemorales