如何用颜色编写文本文件

时间:2014-03-13 13:52:31

标签: bash

我尝试根据输出编写两种颜色的文本文件。我在控制台中使用颜色打印时使用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

这个想法是:如果命令有效,那么写一条绿线,否则用红色。但是我没有在文本文件中获得任何彩色线条。

2 个答案:

答案 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在结束转义序列之前打印换行符。