我创建了一个bash脚本来计算自身的已启动实例.
这是(在这个例子中,我显示实例而不是用wc -l计算它们):
#!/bin/bash nb=`ps -aux | grep count_itself.sh` echo "$nb" sleep 20
(当然,我的脚本名为count_itself.sh)
在执行它时,我希望它返回两行,但它返回三行:
root@myserver:/# ./count_itself.sh root 16225 0.0 0.0 12400 1176 pts/0 S+ 11:46 0:00 /bin/bash ./count_itself.sh root 16226 0.0 0.0 12408 564 pts/0 S+ 11:46 0:00 /bin/bash ./count_itself.sh root 16228 0.0 0.0 11740 932 pts/0 S+ 11:46 0:00 grep count_itself.sh
用&执行它标志(即在后台,并手动执行ps -aux位,它返回两个,这就是我想要的:
root@myserver:/# ./count_itself.sh & [1] 16233 root@myserver:/# ps -aux | grep count_itself.sh root 16233 0.0 0.0 12408 1380 pts/0 S 11:48 0:00 /bin/bash ./count_itself.sh root 16240 0.0 0.0 11740 944 pts/0 S+ 11:48 0:00 grep --color=auto count_itself.sh
我的问题是:为什么脚本中的ps -aux执行返回的行多于预期?
或者,换句话说,为什么在我的第一个例子中创建了id为16226的进程?
编辑(因为大多数人似乎误解了我的问题):
我想知道为什么bash执行返回/ bin / bash ./count_itself.sh的两个实例,而不是为什么它返回grep count_itself.sh.
编辑2:
当然,我正在寻找一种方法来避免这种行为,并让脚本只返回/ bin / bash ./count_itself.sh一次.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。