0
TMPFILE=/tmp/jboss_ps.$$
     ${PS} ${PS_OPTS} | \
     grep ${JBOSS_HOME}/java | \
     egrep -v " grep | \
     tee | $0 " | ${AWK} '{print $NF " "}' | \
     sort -u > ${TMPFILE} 2>/dev/null

上記のコードから、この正確な行が何をしているのか知りたい

egrep -v " grep | \
     tee | $0 "

最初は、その行がこの正確な文字列「grep | \ tee | $0」を含まないすべてのものを検索していると思っていましたが、egrep がパイプを処理しているように見えるので、ここでのパイプの意味は何ですか? 私のテストではそうではないように見えますが、出力のリダイレクトを意味する場合、内部の grep は何を取得していますか? そして、なぜティーも一人なのですか?

4

2 に答える 2

0

私の知る限り

egrep -v " grep | \
     tee | $0 "

に過ぎない

egrep -v " grep | tee | $0 "

\bash の継続文字はどこにありますか。

egrepと同じですgrep -E

-v 反転選択

teeちょうど別の文字列

そのため、文字列 {java path} を持つ行が検索され、この結果内で、条件 { either egrep -v " grep | tee | $0 "of grep OR tee OR $0 } に一致しないすべての行が検索されます。 $0 is the filename not a '$0'

" commands | $variables "変数を拡張してユーティリティを使用する傾向があります。

于 2013-10-30T00:15:30.850 に答える
0

egrep コマンドの前のパイプラインのコマンドは、おそらく ps -ef|grep .... のようなものです。あなたが尋ねた egrep -v (オプション)行は、結果に不要な行を単に省略しています。この場合、スクリプトによって発行された最初の grep コマンド、すべての tee コマンド、最後に実行中のこのスクリプトの名前である $0 です。egrep では、二重引用符で囲み、パイプ記号で区切って複数のパターンを入力できます。構文 egrep -[オプションの有無] "pattern1|pattern2|pattern..."

于 2013-10-31T14:55:01.710 に答える