今天一个师弟问我怎样在linux 实现多进程,缩短时间
这段代码意思是这样的:
列出在WWW下有以每日为目录的文件夹下的目录,并循环出此目录下的文件名,由于日期下的目录(0,1...)是不确定的,想一次开和日期下目录等数量的进程来同时罗列出次目录下面的文件名.
WWW
----20160722
--------0
------------1.txt
------------2.txt
--------1
------------3.txt
------------4.txt
直接上代码
#/bin/sh
PROSAVEPATH="/WWW/"`date "+%Y%m%d"`
EXCUSHELL="/WWW/excu_minute_data.sh"
cd $PROSAVEPATH
if [ ! $1 ] ;then
for d in `ls -l | grep ^d | awk '{print $9}'`
do
{
/bin/sh $EXCUSHELL $d
sleep 2
} & #####此处为重要的放入后台执行符号.
done
else
PROSAVEPATH="$PROSAVEPATH/$1"
for f in `ls "$PROSAVEPATH/" `
do
echo "$PROSAVEPATH/$f"
done
fi
此程序的意思就是 执行当前脚本,获取日期下的目录名称,通过多进程 传入目录名 再获取目录名下的所有文件名,并输出,
为了显示明显,故停顿2秒。 如果有想测试的小伙伴 可以把 & 符号去掉即可看效果.