代码之家  ›  专栏  ›  技术社区  ›  nonopolarity

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

  •  4
  • nonopolarity  · 技术社区  · 14 年前

    grep 不允许设置颜色

    grep --color='1;32'
    

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

    export GREP_COLOR='1;32'
    

    然后使用 grep --color

    如何为grep创建别名或编写函数,以便有grep的两个版本(例如grep和grepstrong) 一种是普通的绿色字体,另一种是黑色(或白色)背景的绿色字体?

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

    因为如果我们使用

    grep some_function_name | grep 3
    

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

    3 回复  |  直到 14 年前
        1
  •  7
  •   Sean    14 年前

    使用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'
    
        2
  •  0
  •   Cfreak    14 年前

    你把这个放在你的.bashrc文件里了吗?就这样做:

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

    你该走了

        3
  •  0
  •   nonopolarity    14 年前

    用肖恩的答案 grepstrong 需要退出grep,这样它就不会使用绿色字体颜色调用grep。

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