2010-11-12 5 views
0

Я запускаю следующую команду для мониторинга журнала.echo не работает в команде

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; 

Ожидаемый выход

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 

Но на одном AIX 5.3 коробке (КШ) Я получаю следующий вывод

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 

Там нет "Новая линия" после "Aborting!" который должен быть там из-за второй последней команды эха.

Это происходит только на этой конкретной коробке. Может ли кто-нибудь сказать мне, почему это так?

ответ

0

Некоторые версии Unix имеют эхо, которое не выводит ничего, даже новую строку, если у нее нет аргументов. Возможно, AIX является одним из них (я никогда не использовал, поэтому не знаю). Сделайте это вместо:

echo '' 

Это говорит эхо, чтобы вывести пустую строку, а затем новую строку.

+0

Я проверил это .... но это не проблема ... есть и другие команды, похожие на это .... эхо с аргументом работает нормально ... вот почему я в тупик ... это не работает для этой конкретной команды – peter