Ich habe ein Shell-Skript mit vielen Echo-Anweisungen. Ich möchte jeder Ausgabezeile die Uhrzeit/das Datum voranstellen.Protokolle mit Datum in Shell-Skript vorfixieren
So ersetzte ich jeden
echo "Some text1"
echo "Some text2"
mit
echo "`date +%y/%m/%d_%H:%M:%S`:: some text1"
echo "`date +%y/%m/%d_%H:%M:%S`:: some text2"
Das ist ziemlich hässlich. Gibt es sowieso einen Alias (oder das Analog zu einem #define in C), um es sauberer zu machen.
Offensichtlich tut so etwas wie:
DATE=`date +%y/%m/%d_%H:%M:%S`
echo "$DATE:: some text1"
echo "$DATE:: some text2"
... nicht funktionieren würde, weil in diesem Fall das Datum nur einmal berechnet wird und jedes Echo würde das gleiche Datum hat.
Ich denke darüber nach, jedes Echo durch einen Druckfunktionsaufruf zu ersetzen, der das Präfix ausführt. Ich möchte wissen, ob jemand andere/bessere Ideen hat.
besser zu nutzen '$ *' statt '$ @ 'innerhalb eines größeren Strings (da es sich um einen Kontext handelt, in dem' '$ @'s Verhalten bei der Aufteilung auf ein Arg-per-Mitglied aktiv unerwünscht ist), und besser die POSIX-Funktionsdeklarationssyntax ohne einen konkreten Grund zu verwenden damit unvereinbar zu sein. –