Я использую Rasbian 3.12.26+ на модели B.

Вот как выглядит моя запись cron:

* * * * * sleep 11; { echo -en "\e[1;4;33m"; date; echo -en "\e[0m"; curl -k "http://sampleurl.com/update.php"; } >> /var/log/cron/calls.log

Вот как выглядит мой журнал:

-en \e[1;4;33m
Thu Sep  4 14:29:13 UTC 2014
-en \e[0m
This is output from curl!

Однако, когда я просто вставляю команду в bash, она работает как задумано:

{ echo -en "\e[1;4;33m"; date; echo -en "\e[0m"; curl -k "http://sampleurl.com/update.php"; } >> /var/log/cron/calls.log

И вывод

Thu Sep  4 14:27:51 UTC 2014
This is output from curl!

С подчеркиванием первой строки, жирным шрифтом и желтым, как и предполагалось.

По какой-то причине при запуске crontab echo выводит «-en» вместо того, чтобы принимать его в качестве аргумента. В результате последовательности выхода цвета не экранируются.

Что дает?

1 ответ1

2

Вероятно, что cron использует /bin /sh. Убедитесь сами, сравнив вывод следующего:

/bin/sh -c '{ echo -en "\e[1;4;33m"; date; echo -en "\e[0m"; curl -k "http://sampleurl.com/update.php" ; } > /tmp/1'

Вышеприведенное дает результат, который вы получаете

/bin/bash -c '{ echo -en "\e[1;4;33m"; date; echo -en "\e[0m"; curl -k "http://sampleurl.com/update.php" ; } > /tmp/1'

Принимая во внимание, что та же самая команда под bash производит желаемый результат

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .