【发布时间】:2012-09-07 16:08:07
【问题描述】:
我有一个简单的 bash 脚本可以在我的 grep 结果之上打印一个标题:
#!/bin/bash
for var in "$@"
do
if [[ $var != -* ]];
then
break
fi
done
echo
echo -en "\e[1;31m ====== GREP $var ======\e[0m\n"
echo
grep $@
但最终的命令与直接从提示符实际运行grep 不同,因为结果中缺少颜色。直接执行grep 时,结果显示文件名为紫色,匹配项为红色,但现在所有输出都是正常的终端文本颜色。谁能告诉我如何从我的脚本中获取彩色版本?
【问题讨论】:
-
提示:
grep首先是如何知道输出颜色的? -
你试过
--color=always吗? -
是的,它基本上是重复的……我的错。
-
顺便说一句,
grep $@应该是grep "$@"以避免将grep "foo bar"更改为grep foo bar。