- 此问题在此处已有答案**:
(19个答案)
How can I detect if my shell script is running through a pipe?(6个答案)
17小时前关门了。
我正在写一个脚本来自动安装程序和配置,当脚本执行时,它会生成一个. log文件,以便用户在需要时进行分析。结果,一些不需要的符号被写入日志文件。
图中是日志文件的写入过程,请注意我提到的
符号
这是端子
的输出
显然,这与我对echo命令的输出颜色所做的更改有关。
# Styles
RED_BOLD="\033[1;31m"
GREEN_BOLD="\033[1;32m"
RESET_STYLE="\033[00m"
echo -e "$GREEN_BOLD"SUCESSFULY COMPLETED."$RESET_STYLE"
下面是我如何生成这样一个文件。
LOG_FILE_LOCATION=/home/$(id -un)
exec > >(tee -i $LOG_FILE_LOCATION/"Log file.log")
exec 2>&1
如何使这些符号不被写入日志文件?
2条答案
按热度按时间ryoqjall1#
短溶液:
替换
第一个月
与
'tee〉(sed-e“s/\x1b[[01][0-9;]*m//g”〉$日志文件位置/“日志文件. log”)
稍微分解一下(或者如何找到解决方案):
用途
echo -e "I ${RED_BOLD}love${RESET_STYLE} Stack Overflow\n" | od -ta
看看我们需要删除哪些字符。
现在,将
sed
命令组合在一起,直到所有颜色代码字符消失,例如:echo -e "I ${RED_BOLD}love${RESET_STYLE} Stack Overflow\n" | sed -e "s/\x1b\[[01][0-9;]*m//g" | od -ta
tmb3ates2#
仅在标准输出为端子时添加颜色: