shell 脚本执行结果是多少?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell 脚本执行结果是多少?相关的知识,希望对你有一定的参考价值。
# cat test.sh
#!/bin/bash
NUM=`ps -ef | grep $0 | grep -v grep | wc -l`
请问脚本执行结果后 NUM 値为多少?
为什么?
ps -ef是查询所有的进程
grep -v grep是去除grep命令信息
wc -l 是统计有多少个
结果是1追问
答案是 2, 你只看到表象,再想想。
追答我测试了,确实是2
但,我直接执行:ps -ef | grep $0 | grep -v grep | wc -l 其结果是1
跟踪了一下,发现有一个子进程出现。估计是
NUM=`ps -ef | grep $0 | grep -v grep | wc -l`
这里``中执行时,是单独创建一个子进程完成的这个工作。
你打开几个bash界面NUM就是几
ps -ef列出所有进程
grep $0,$0是shell终端的名称,一般是bash
grep -v是从上面的结果里排除掉上条grep命令本身多带来的一行
wc -l是统计最终结果的行数
结果为2的原因是你本身输命令的就是一个bash
然后这个bash又新建了一个bash进程来运行这个脚本
一共两个
如果你多新建几个终端闲置在哪里,结果还会再变追问
你再想想吧,你的回答明显有问题。
以上是关于shell 脚本执行结果是多少?的主要内容,如果未能解决你的问题,请参考以下文章
利用shell脚本执行ssh远程另一台主机执行命令并返回命令的结果集
利用shell脚本执行ssh远程另一台主机执行命令并返回命令的结果集