저는 Pi 모델 B에서 Rasbian 3.12.26+를 실행하고 있습니다.
내 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
아마도 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에서 동일한 명령이 원하는 출력을 생성하는 반면