2

ps からの出力を保存し、後で比較しようとしています。
私は次の行を使用しています:

siteminder_running=`ps -ef | grep $iplanet_home | grep LLAWP | wc -l`

出力を比較しようとすると、変数の数値の前にタブがあることがわかりました。

これは出力です:

-       0- value

何が問題なのですか?

4

2 に答える 2

3

ruakhが指摘したように、あなたはただ使うことができますgrep -c

siteminder_running=`ps -ef | grep $iplanet_home | grep -c LLAWP`

一般的に空白を修正するには、次xargs echoのように使用します。

siteminder_running=`ps -ef | grep $iplanet_home | grep LLAWP | wc -l | xargs echo`
于 2014-01-29T22:46:10.503 に答える
1

ほとんどの Unix および GNU/Linux リリースで提供される wc(1) ユーティリティは、ユーザー端末入力ファイル名とカウント (行/文字/印刷するように要求したもの) をタブで区切って印刷します。

標準入力の場合、入力ファイル名はなく、count の前に TAB があるだけです。

これを回避するには、いくつかの方法があります。たとえば、次のとおりです。

ps -ef | grep $iplanet_home | grep LLAWP | wc -l | awk '{ printf "%d\n", $0 }'
printf $(ps -ef | grep $iplanet_home | grep LLAWP | wc -l)
ps -ef | grep $iplanet_home | grep LLAWP | wc -l | sed -e 's/^[ \t]*//'

前述のように、これらは単なる例であり、これを実現するには文字通り数十の方法があります。

于 2014-01-21T15:12:32.900 に答える