Linux:关于脚本for循环的执行顺序

#!/bin/bash
sum=0
for pid in `ps -ef|grep $1|grep -v grep|awk '{ print $2 }'`
do
sum=$[$sum+`lsof -p $pid|wc -l`]
done
echo $sum

这段脚本里,for循环是在每次进来时都会执行一遍`ps -ef|grep $1|grep -v grep|awk '{ print $2 }'`,然后取第一个值、第二个值、第三个值,还是说,只会执行一次`ps -ef|grep $1|grep -v grep|awk '{ print $2 }'`,然后在返回的结果集中再取第一个值、第二个值、第三个值呢?

第1个回答  2014-04-04
执行一次,for in 后边的`` 或 $() 会产生一个list。然后依次读取。
第2个回答  2014-04-04
只会执行一次`ps -ef|grep $1|grep -v grep|awk '{ print $2 }'`,然后在返回的结果集中再取第一个值、第二个值、第三个值本回答被提问者采纳
第3个回答  2020-06-21
若第一句是后台执行的话(比如加个“&”),则可以不用的第一句执行完就执行第二句。
否则的话,则需要第一句执行返回后才执行第二句。
相似回答