ps aux | grep在.bash_history文件中搜索

时间:2016-05-23 23:28:57

标签: bash grep ps

我在我的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}}

1 个答案:

答案 0 :(得分:3)

正如我们在评论中所确定的那样,在启用set -x的情况下运行此操作会显示别名会为您的grep电话添加一些额外的复杂性。

为了使其尽可能健壮,让我们都阻止别名执行(通过使用command buildin),并明确指定你的grep应该搜索stdin(通过传递-作为filename,并使用-e标记后面的十六进制字符串,以明确表示要搜索的目标):

ps aux | command grep -e '[c]13dc8623fe6abc' -