我在我的mcahine上运行Debian8(Jessie)。
我跑
::6+type ps
ps is /bin/ps
$ type grep
我得到以下结果
::7+type grep
grep is aliased to `grep --color=auto -I -r --exclude=\*.{c.svn-base,o,.py,so*,a}'
返回的结果是我系统上bash脚本文件的搜索结果。这不是我所期望的。我希望它能够grep /搜索$ PS4=':$BASH_SOURCE:$LINENO+'
$ set -x
的输出。
为什么我的系统会发生这种奇怪的行为。?
根据以下建议,我做了以下
$ ps aux | grep '[c]13dc8623fe6abc'
输出
::5+grep --color=auto -I -r '--exclude=*.c.svn-base' '--exclude=*.o' '--exclude=*..py' '--exclude=*.so*' '--exclude=*.a' '[c]13dc8623fe6abc'
::5+ps aux
.bash_history:java -jar slave.jar -jnlpUrl http://tomcat-server:8080/slave-agent.jnlp -s c13dc8623fe6abc
.bash_history:java -jar slave.jar -jnlpUrl http://tomcat-server:8080/slave-agent.jnlp -s c13dc8623fe6abc
Script/build.sh:java -jar slave.jar -jnlpUrl http://tomcat-server:8080/slave-agent.jnlp -s c13dc8623fe6abc
输出
{{1}}
设置
后{{1}}
之后如果我这样做
{{1}}
我得到以下输出。
{{1}}
答案 0 :(得分:3)
正如我们在评论中所确定的那样,在启用set -x
的情况下运行此操作会显示别名会为您的grep
电话添加一些额外的复杂性。
为了使其尽可能健壮,让我们都阻止别名执行(通过使用command
buildin),并明确指定你的grep应该搜索stdin(通过传递-
作为filename,并使用-e
标记后面的十六进制字符串,以明确表示要搜索的目标):
ps aux | command grep -e '[c]13dc8623fe6abc' -