grep 是 Linux 中最常用的命令之一。我觉得它的基本功能是在输出行中突出显示您搜索的字符串。这可以通过 --color 选项实现。
每次都输入 --color 很烦人,而且效率不高。有没有办法将 grep 改为 grep --color 的形式?
我尝试编写一个名为grepd并将其添加到我的 PATH 变量中。但脚本对输入不起作用grepd 。请提供任何建议。
#!/bin/bash
grep --color $1 $2
答案1
答案2
#!/bin/sh
exec grep --color "$@"
这说明了当命令不能按照您喜欢的方式工作时使用 shell 脚本“包装”命令的标准方法。
这exec
避免了创建额外的进程(一个用于脚本,一个用于 grep)。如果你愿意,可以省略它。
将"$@"
被脚本的所有参数替换,无论有多少个参数。它正确地保留了带有空格和其他 shell 专用字符的参数。
答案3
尝试放入 export GREP_COLORS='AUTO'
你的 ~/.bashrc - 对我来说,它有效。
从man grep
--color[=WHEN], --colour[=WHEN]
Surround the matched (non-empty) strings, matching lines, context lines, file names, line numbers, byte offsets, and separators (for fields and groups of context lines) with escape sequences
to display them in color on the terminal. The colors are defined by the environment variable GREP_COLORS. The deprecated environment variable GREP_COLOR is still supported, but its setting
does not have priority. WHEN is never, always, or auto.