我尝试根据输出编写两种颜色的文本文件。我在控制台中使用颜色打印时使用echo -e
命令,如下所示:
RETURNED=$?
if [ $RETURNED == 0 ]
then
echo -e "\e[1;32mffmpeg -t $DURACION -f x11grab -s $RESOLUCION -r ${FPS[j]} -b:v $BR -i :0.0 -y $NOMBRE\e[0m" >> file.txt
fi
这个想法是:如果命令有效,那么写一条绿线,否则用红色。但是我没有在文本文件中获得任何彩色线条。
答案 0 :(得分:7)
你试过less -R file.txt
吗?这应该会告诉你颜色(至少对我有用)。
如果您想要非shell应用程序支持的颜色编码,最好的办法是输出HTML,例如:
printf '<code style="color: %s;">%s</code>' "green" "ffmpeg -t $DURACION -f x11grab -s $RESOLUCION -r ${FPS[j]} -b:v $BR -i :0.0 -y $NOMBRE" >> file.html
答案 1 :(得分:1)
尝试使用printf
代替echo -e
- 后者似乎不适用于ANSI转义序列的所有平台(至少不在OSX上)。
printf "\e[1;32mffmpeg -t $DURACION -f x11grab -s $RESOLUCION -r ${FPS[j]}\
-b:v $BR -i :0.0 -y $NOMBRE\n\e[0m" >> file.txt
注意\n
在结束转义序列之前打印换行符。