J'ai un script shell avec beaucoup d'instructions d'écho. Je veux préfixer chaque ligne de sortie avec l'heure/la date.Préfixer les journaux avec la date dans le script shell
Alors, je l'ai remplacé tous les
echo "Some text1"
echo "Some text2"
avec
echo "`date +%y/%m/%d_%H:%M:%S`:: some text1"
echo "`date +%y/%m/%d_%H:%M:%S`:: some text2"
Ce qui est assez laid. Y at-il de toute façon de créer un alias (ou l'analogue d'un #define en C), pour le rendre plus propre.
De toute évidence, faire quelque chose comme:
DATE=`date +%y/%m/%d_%H:%M:%S`
echo "$DATE:: some text1"
echo "$DATE:: some text2"
... ne fonctionnerait pas, parce que dans ce cas, la date est calculée uniquement une fois et chaque écho aurait la même date.
Je pense à remplacer tous les échos d'un appel de fonction d'impression, qui fait le préfixage. Je veux savoir si quelqu'un a d'autres/meilleures idées.
Il vaut mieux utiliser '$ *' plutôt que '$ @ 'à l'intérieur d'une chaîne plus grande (puisque c'est un contexte où le comportement de" $ @ "' de division en un argument par membre est activement indésirable), et mieux d'utiliser la syntaxe de déclaration de la fonction POSIX sans raison concrète être incompatible avec cela. –