Во-первых, я подозреваю, что ваш if
должен использовать флаг -q
на grep
.(Если бы не канал для sendxmpp, я бы тоже не стал беспокоиться о if.)
Во-вторых, я не уверен насчет регулярного выражения, которое вы передаете в grep.Это выглядит подозрительно с восклицательными знаками.
В-третьих, я ожидаю, что это лучше сделать в sed:
tail -5 *logfile* | grep '...' | sed -e 's/^/'"$1"': /' | sendxmpp ...
Обратите внимание, что тот же трюк с цитатами можно использовать и с Perl.Двойные кавычки могут быть лишними, если в параметре никогда не бывает пробелов или чего-то подобного.
(Я бы также отнес это к бесполезному использованию grep, за исключением того, что в обоих * хорошо использовать один и тот же механизм регулярных выражений if
и фактическое время выполнения.)