我有一个shell脚本,命名为test.sh:有巴什 - 一个脚本两个进程
start
1
2
end
所以我的问题是,为什么两个测试:
#!/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"
输出结果是当我使用``调用ps时,.sh进程正在运行(同样发生在$()),而不是直接调用ps时? 我如何得到想要的结果(1)?
可在4.3.11上重现;不知道是什么造成这一点。 – Blacksilver
因为你的以'ps..'开头的行本身可能出现在秒ps的调用中,所以我猜 – derHugo
@derHugo:不行。如果我在ps之前将10倍ps和10倍之后,这条线仍然输出1 – user6050469