shell执行多线程

#!/bin/bash --login 

rundateE=$2
rundateStart=$1
rundate=`date -d "$rundateStart" +%s`
rundateEnd=`date -d "$rundateE" +%s`

# 加入所执行程序所在目录
cd /usr/web/script/sqlserver2hdfs

trap "exec 1000>&-;exec 1000<&-;exit 0" 2

mkfifo testfifo
exec 1000<>testfifo
rm -fr testfifo

for ((n=1;n<=20;n++))
do
  echo >&1000
done

start=`date "+%s"`
while [ "$rundate" -le "$rundateEnd" ]
do
  run=$(date -d @$rundate +"%Y%m%d")
  read -u1000
  {
   # 要多进程运行的脚本 $run 为时间
   echo pystreaming pianhao $run
   sleep 3
   echo >&1000
  }&
  rundate=$((rundate+86400))
done
wait
end=`date "+%s"`
let return=$end-$start
echo "Time: $return"

exec 1000>&-
exec 1000<&-

猜你喜欢

转载自www.cnblogs.com/QFKing/p/11986435.html