Ho uno script di shell con molte istruzioni di eco. Voglio prefisso ogni riga di output con l'ora/la data.Registrazione di prefissi con la data nello script di shell
Così, ho sostituito ogni
echo "Some text1"
echo "Some text2"
con
echo "`date +%y/%m/%d_%H:%M:%S`:: some text1"
echo "`date +%y/%m/%d_%H:%M:%S`:: some text2"
Questo è piuttosto brutto. Esiste comunque la possibilità di creare un alias (o l'analogo di un #define in C), per renderlo più pulito.
Ovviamente, facendo qualcosa di simile:
DATE=`date +%y/%m/%d_%H:%M:%S`
echo "$DATE:: some text1"
echo "$DATE:: some text2"
... non funzionerebbe, perché in tal caso la data è calcolato una sola volta e ogni eco avrebbe la stessa data.
Sto pensando di sostituire ogni eco con una chiamata di funzione di stampa, che fa il prefisso. Voglio sapere se qualcuno ha altre/migliori idee.
meglio usare '$ *' piuttosto che '$ @ 'all'interno di una stringa più grande (poiché si tratta di un contesto in cui il comportamento di" $ @ "' di dividere in un arg-per-member è attivamente indesiderabile), e meglio usare la sintassi della dichiarazione di funzione POSIX in assenza di un motivo concreto essere incompatibile con esso. –