私はtest.shという名前の、シェルスクリプトを持っている:バッシュ - 1つのスクリプトの2つのプロセス
#!/bin/bash
echo "start"
ps xc | grep test.sh | grep -v grep | wc -l
vartest=`ps xc | grep test.sh | grep -v grep | wc -l `
echo $vartest
echo "end"
出力結果は次のとおりです。
start
1
2
end
2つのテストがあり、なぜ私の質問は、あります私がpsを直接呼び出すときではなく、 ``($()で同じことが起こる)を使ってpsを呼び出すときに実行される.shプロセスです。 希望の結果(1)を取得するにはどうすればよいですか?
4.3.11で再現可能です。何が原因で起こっているのか分かりません。 – Blacksilver
'ps..'で始まるあなた自身の行は、秒psでも表示されるかもしれませんので、私は – derHugo
@derHugoと推測します。もし私が私のpsを置くなら、最も早く10回前に10行、この行はまだ1を出力します – user6050469