2010-11-12 6 views
0

Je lance la commande suivante pour la surveillance du journal.L'écho ne fonctionne pas dans une commande

echo ---------------------BEGIN:0;awk ' NR == NR {print $0; recno=NR; rec=$0} END {printf "output is %010d>%s",recno, rec} ' "/var/log/messages";echo ;echo ------------------END:0; 

Le résultat attendu est

Nov 12 03:36:52 hostname gdm[27726]: GDM already running. Aborting! 
output is 0000028518>Nov 12 03:36:52 hostname gdm[27726]: GDM already running. Aborting! 
---------------------END:0 

Mais sur une zone AIX 5.3 (ksh) j'obtiens sortie suivante

Nov 12 03:36:52 hostname gdm[27726]: GDM already running. Aborting! 
output is 0000028518>Nov 12 03:36:52 hostname gdm[27726]: GDM already running. Aborting!---------------------END:0 

Il n'y a pas de "nouvelle ligne" après "Aborting!" qui devrait être là à cause de la dernière commande d'écho.

Cela se produit uniquement sur cette zone particulière. Quelqu'un peut-il me dire pourquoi il en est ainsi?

Répondre

0

Certaines versions d'Unix ont un écho qui ne génère rien, pas même un retour chariot, s'il n'a pas d'argument. Peut-être AIX est l'un de ceux-ci (je n'ai jamais utilisé donc ne sais pas). Pour ce faire, à la place:

echo '' 

Cela dit écho à la sortie d'une chaîne vide, suivie d'une nouvelle ligne.

+0

J'ai vérifié que .... mais ce n'est pas le problème ... il y a d'autres commandes similaires à ceci .... echo w/o argument fonctionne bien ... c'est pourquoi je suis perplexe ... il échoue pour cette commande particulière – peter

Questions connexes