如何解决管道命令中未使用别名 - Git Bash
我在 Windows 上使用 Git Bash,尤其是使用命令“find”和“grep”来定位包含一些文本的文件。
我已经设置了别名 grep='grep --color=auto'
,它在单独使用时可以很好地显示颜色,但是如果我输入:
find . -iname "*.java" | xargs grep my_word
my_word 的出现不以颜色显示。颜色只有在我输入时才会出现:
find . -iname "*.java" | xargs grep --color=auto my_word
换句话说,别名似乎不用于管道的右侧。
这是管道内别名的正常行为吗?我无法在文档中找到答案。
谢谢。
解决方法
这是正常的,但不是因为管道。
alias
定义命令的别名。它不是所有文本的宏替换(例如在参数和选项中。
就您而言,命令是:find
和 xargs
。命令 xargs
将直接调用 grep
命令,而不从原始 shell 传递。
这种行为非常有用。您正在运行的各种命令可能是 shell 脚本,如果您更改命令的含义,它们可能会出现意外行为。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。