cronjob中的Bash转义序列不工作
我使用以下转义序列格式化脚本的输出:cronjob中的Bash转义序列不工作,bash,cron,escaping,crontab,Bash,Cron,Escaping,Crontab,我使用以下转义序列格式化脚本的输出: SCurs='\e[s'; # Save Cursor MCurs="\e[80C"; # Move Cursor MCursB="\e[35C"; # Move Cursor a bit RCurs='\e[u'; # Reset Cursor RCol='\e[0m'; # Text Reset # Regular
SCurs='\e[s'; # Save Cursor
MCurs="\e[80C"; # Move Cursor
MCursB="\e[35C"; # Move Cursor a bit
RCurs='\e[u'; # Reset Cursor
RCol='\e[0m'; # Text Reset
# Regular Bold Underline High Intensity BoldHigh Intens Background High Intensity Backgrounds
Bla='\e[0;30m'; BBla='\e[1;30m'; UBla='\e[4;30m'; IBla='\e[0;90m'; BIBla='\e[1;90m'; On_Bla='\e[40m'; On_IBla='\e[0;100m';
Red='\e[0;31m'; BRed='\e[1;31m'; URed='\e[4;31m'; IRed='\e[0;91m'; BIRed='\e[1;91m'; On_Red='\e[41m'; On_IRed='\e[0;101m';
Gre='\e[0;32m'; BGre='\e[1;32m'; UGre='\e[4;32m'; IGre='\e[0;92m'; BIGre='\e[1;92m'; On_Gre='\e[42m'; On_IGre='\e[0;102m';
Yel='\e[0;33m'; BYel='\e[1;33m'; UYel='\e[4;33m'; IYel='\e[0;93m'; BIYel='\e[1;93m'; On_Yel='\e[43m'; On_IYel='\e[0;103m';
Blu='\e[0;34m'; BBlu='\e[1;34m'; UBlu='\e[4;34m'; IBlu='\e[0;94m'; BIBlu='\e[1;94m'; On_Blu='\e[44m'; On_IBlu='\e[0;104m';
Pur='\e[0;35m'; BPur='\e[1;35m'; UPur='\e[4;35m'; IPur='\e[0;95m'; BIPur='\e[1;95m'; On_Pur='\e[45m'; On_IPur='\e[0;105m';
Cya='\e[0;36m'; BCya='\e[1;36m'; UCya='\e[4;36m'; ICya='\e[0;96m'; BICya='\e[1;96m'; On_Cya='\e[46m'; On_ICya='\e[0;106m';
Whi='\e[0;37m'; BWhi='\e[1;37m'; UWhi='\e[4;37m'; IWhi='\e[0;97m'; BIWhi='\e[1;97m'; On_Whi='\e[47m'; On_IWhi='\e[0;107m';
例如,如果输出不是cronjob,则输出如下所示:
Searching for latest version [ OK ]
“OK”是用绿色写的
我的问题是,这不适用于cronjob。cronjob向我发送一封电子邮件,其中包含以下输出:
[sSearching for latest version[u[-10C[ [0;32mOK [0m]
这并不漂亮,这就是我想在cronjobs中解决这个问题的原因
此行的代码如下所示:
echo -en "${SCurs}Searching for latest version";
echo -e "${RCurs}${MCurs}[ ${Gre}OK ${RCol}]\n";
有人能帮我吗?为什么不使用
tput
来检测和调用终端功能?我正在使用tput。。。但是“tput”在cronjobs中说:“tput:No value for$TERM,No-T specified”是的,这是有原因的。原因应该是什么?我没有使用电子邮件客户端。我只是将电子邮件放在cronjob文件的头中:$cat/etc/cron.d/Script PATH=/usr/local/bin:/usr/bin:/bin MAILTO=mail@example.comSHELL=/bin/bash 0 20***root/root/script.shI认为这基本上就是Ignacio的目的。cronjob的环境与您正在运行的环境不同,您需要