bash - 在 Bash 中,如何为 "export GREP_COLOR=' 1;3 2'; grep --color"编写别名或函数?

标签 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 根本不会获得任何输入,只是在那里等待。

最佳答案

使用 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'

关于bash - 在 Bash 中,如何为 "export GREP_COLOR=' 1;3 2'; grep --color"编写别名或函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3420845/

相关文章:

linux删除目录中除符号链接(symbolic link)之外的文件?

bash - 如何将变量从脚本传递到我使用 cat 生成的文件?

bash - 如果没有结果,如何停止 grep 创建空文件

php - 表达式不匹配正则表达式

regex - 如何 grep 具有特定格式的行

UNIX grep - 如何在特定命名的文件中递归查找文本?

linux - 压缩文件列表的文件名中包含空格

ruby-on-rails - 使用通配符时,只有一个文件在 rails runner 中运行

bash: ngc: 找不到命令

json - 使用 BusyBox 工具解析 JSON