Rover12421's Blog

The End.

SVN批量CheckOut Shell脚本

        很久没看过写个shell,YokiDe有需求在Linux下批量CheckOut SVN数据,于是花些时间写了一个shell脚本,只要把更新的应用名,账号,密码写到account.txt文本里就可以了。

        这个脚本使用了伪多线程,因为对shell也不怎么熟悉,不知道这个效果怎么样。凑合着用还行吧。脚本比较简单,就不加说明了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/bin/bash
file=account.txt
num=3
jobs=()

for ((i=0; i<$num; i++)); do
    jobs[i]=0
done

cat $file | while read line; do
        command=`echo "$line" | awk '{print "svn checkout https\072//svn\056xxxapp\056com/"$1" "$1" --username "$2" --password "$3" --quiet --no-auth-cache";}'`
        #echo $command 
    run=0
    while [[ $run == 0 ]]; do
        for ((i=0; i<$num; i++)); do
            if [ ${jobs[$i]} == 0 ]
            then
                {
                    jobs[$i]=$!
                    cur=$i
                    echo $command
                    $command >> checkout.log
                    jobs[$cur]=0
                } &
                run=1
                break;
            fi
        done
        sleep 1
    done
done
wait

Comments