2016-05-23 12 views
0

私はmcahineでDebian8(Jessie)を実行しています。ps aux | .bash_historyファイルのgrep検索

私は

.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 

結果が返され、次の結果を得る

$ ps aux | grep '[c]13dc8623fe6abc' 

を実行するには、私のシステム上のbashスクリプトファイルからの検索結果です。これは私が期待していることではありません。私はgrep/ps auxの出力を検索することを期待します。

なぜ私のシステムでこの奇妙な動作が起こっていますか?

以下の提案ごとに、私は

$ PS4=':$BASH_SOURCE:$LINENO+' 

$ set -x 
を設定した後、次の

$ type ps 

出力

::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}' 

を行ってきたようにその私が

$ 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

ラン 'PS4 = '$のBASH_SOURCEます。$ LINENO +''、そして '再び、その後、同じコマンドを-x'設定します。 stdout(潜在的に異なる行番号で、あなたのシェルがどれくらい開いているかを示す)で ':: 3 + ps aux'と' :: 3 + grep '[c] 13dc8623fe6abc' '以外のものを返した場合は、適切に。 –

+1

... 'ps'をシャドーイングする関数やエイリアスがあれば、実際に何をしているのかを表示します。 'ps'や 'grep'の出力 - どの実行可能ファイルや関数などが実際にあなたに' ps 'や' grep'を提供しているかを示します - 参考になるかもしれません。 –

+2

これらの手順を実行すると、再生ソフトウェアを構築するのに役立つかもしれません。今のところ誰も同じ結果を得ることができず、ソフトウェア開発よりも個々のサポートに関する質問が多いでしょう。 –

答えて

3

我々が有効になってset -xでこれを実行し、コメントで決定されるように、エイリアスがあなたのgrepコールに余分な複雑さの束を追加したことを示しました。これは、可能な限り強力な、のは(command buildinを使用して)実行するのエイリアスを防ぎ、かつ明示的にあなたのgrepが、ファイル名として-を渡すことで(STDINを検索し、フラグに-eを使用するように指定の両方聞かせて作るために

検索するためのターゲットを表すものとして明確に以下の16進文字列):

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

説明のポイントと同じように、エイリアスは '-r'オプションをgrepに追加しました。これは' grep'がstdinを無視してファイルシステムを検索する原因になります。 +1。 – John1024

+0

@ John1024、...実際には、私が振る舞いとそのmanページを見たとき、私は間違ったシステムにいました。これは、このバグを持っていないMacOSのものです。それはまだGNUにあります。 –

関連する問題