防止在脚本中使用别名

防止在脚本中使用别名

我的 .bash_profile 上有一个grep别名,用于显示行号并为匹配项着色。这是我的grep结果的一个例子:

$ grep test filename
1:This is a test (to be removed)
1:This is a second test (to be removed)

这是我的别名:

alias grep="grep --color"

grep在脚本上执行命令时,有什么方法可以防止使用该别名吗?

如果我在脚本中尝试以下命令:

grep test filename | sed -E 's/^(.*) \(.*$/\1/g'
\grep test filename | sed -E 's/^(.*) \(.*$/\1/g'
command grep test filename | sed -E 's/^(.*) \(.*$/\1/g'
/usr/bin/grep test filename | sed -E 's/^(.*) \(.*$/\1/g'

所有结果如下:

1:This is a test
1:This is a second test

得到以下结果将会很棒:

This is a test
This is a second test

我正在使用grep (GNU grep) 2.21GNU bash, version 4.3.33

答案1

使用\grep

(Bourne/POSIX) shell 规范规定,当引用命令字的任何字符时,会抑制交互式 shell 中的别名替换。

https://stackoverflow.com/a/16506263/91769

相关内容