在Bash中,如何为“export GREP_COLOR ='1; 32'; grep --color”编写别名或函数?

时间:2010-08-06 03:30:53

标签: bash grep

grep不允许按

设置颜色
grep --color='1;32'

(1表示粗体,32表示绿色)。它必须使用GREP_COLOR

export GREP_COLOR='1;32'

然后使用grep --color

我们如何为grep别名或编写函数,以便我们有2个版本的grep(比如grep和grepstrong),一个用于通常的绿色字体,另一个用于绿色字体黑色(或白色)背景?

alias grep='export GREP_COLOR="1;32"; grep --color'
如果我们使用

将无效

grep some_function_name | grep 3

然后上面的别名将生成grep的结果,并输入export,所以第二个grep根本不会得到任何输入而只是在那里等待。

3 个答案:

答案 0 :(得分:7)

使用bash,您可以通过在命令前添加“key = value”对来为单个命令设置环境变量:

GREP_COLOR='1;32' grep --color <whatever>

示例:

echo foo | VAR=value bash -c 'read line; echo $VAR: $line'

所以在你的情况下,只需说:

alias grep='GREP_COLOR="1;32" grep --color'

答案 1 :(得分:0)

你把它放在你的.bashrc文件中吗?就这样做:

export GREP_COLOR="1;32"
alias grep='grep --color'

你应该好好去

答案 2 :(得分:0)

使用Sean的答案,grepstrong的别名需要转义grep,以便它不会使用绿色字体颜色调用grep。

alias grep='GREP_COLOR="1;32" grep --color'
alias grepstrong='GREP_COLOR="1;34;46" \grep --color'