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?

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


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

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.