Fusionner deux résultats de commande sur une seule ligne lors de la redirection de stdout

8

Dans un script cron, je veux enregistrer les températures du processeur au format

[datetime] temp

en utilisant dateet acpi -t. Comment puis-je rediriger ( >>) ces deux commandes vers une seule ligne dans le fichier journal?

David Thorisson
la source

Réponses:

11

Essayez simplement de faire:

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

Vous souhaiterez peut-être spécifier un format de date compact pour rendre votre fichier journal plus facile à analyser et pour être indépendant des paramètres d'environnement / paramètres régionaux (quelque chose comme $(date +"%Y%m%d %H%M%S")par exemple).

Tapis
la source
4

enfin peut-être sur des systèmes plus anciens (solaris8 fe ^^) sans bash:

x=`date '+%Y%m%d %H%M%S'`; y=`acpi -t`; echo "$x $y" >>your_log_file
Loup
la source
1
Même Solaris 8 comprend $(…), il est compatible POSIX. Mais vous devez utiliser à la /usr/xpg4/bin/shplace de /bin/sh, Solaris 8 /bin/shest toujours un shell Bourne.
Gilles 'SO- arrête d'être méchant'
Aaah, jamais utilisé / usr / xpg4 / bin / sh, nous aurions économisé quelques efforts ces jours-ci en utilisant uniquement le shell Bourne.
loup
Comme celui-ci ...
mikiemorales