220_shell脚本_完善219的三个功能,并添加3个功能,以及一些小问题,函数中无法使用位置变量的问题

执行功能

执行功能2的导出功能

A    rslib_custom/Partizan_netlibs/lib_x400/libcommon_boost_1_76_0_rapidjson-1.1.0_mxml-3.2.a
A    rslib_custom/Partizan_netlibs/lib_x400/lib-bcast-serv_boost_1_76_0_rapidjson-1.1.0.a
Checked out revision 1342. ---导出成功!!!!!


q
q
退出while循环
Input a number between 1 to 5 或者按 'q' 退出脚本:q
str_1 = q
=========================
退出脚本!!!
=========================

执行功能3、功能7、功能8的正常打印

A    hybrid_normal/APP/dvr/main/tools/config/BASCOM/N7XXX/不支持序列号(SN)/custom-config.ini
A    hybrid_normal/APP/APP.pro
Checked out revision 2056.---导出成功!!!!!


q
q
退出while循环

Input a number between 1 to 5 或者按 'q' 退出脚本:3
str_1 = 3


指令3,将app\gui中的编译好的文件,拷贝到release下对应型号文件夹下,并且压缩app文件
cp /home/liguoqiang/svnwork/5.07_8.2.1/hybrid_normal/APP/dvr/main/release/* /home/liguoqiang/svnwork/5.07_8.2.1/release/8xxx/ -rf
cp Release/images_5-0
cp no_video_TOPCAM.png
cp Release/language_TOP/*
cp Release/style_5-0
cp Release/font/yahei_arial_gothic_unicode[full]_32M.ttf
cp: cannot stat ‘Release/raysharp-hdvr-ui’: No such file or directory
Parallel mksquashfs: Using 16 processors
Creating 4.0 filesystem on app_V211028_N4XXX_M, block size 131072.
[============================================================================================================================================================================|] 823/823 100%

Exportable Squashfs 4.0 filesystem, xz compressed, data block size 131072
        compressed data, compressed metadata, compressed fragments, compressed xattrs
        duplicates are removed
Filesystem size 6154.00 Kbytes (6.01 Mbytes)
        41.91% of uncompressed filesystem size (14682.60 Kbytes)
Inode table size 4714 bytes (4.60 Kbytes)
        19.61% of uncompressed inode table size (24034 bytes)
Directory table size 7222 bytes (7.05 Kbytes)
        35.28% of uncompressed directory table size (20470 bytes)
Number of duplicate files found 33
Number of inodes 734
Number of files 726
Number of fragments 6
Number of symbolic links  0
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 8
Number of ids (unique uids + gids) 2
Number of uids 1
        liguoqiang (1024)
Number of gids 1
        rsteam (1096)
压缩app文件的名称 =  app_V211028_N4XXX_M
Input a number between 1 to 5 或者按 'q' 退出脚本:8
str_1 = 8



8、压缩app删除,进入/home/liguoqiang/svnwork/5.07_8.2.1/release
Input a number between 1 to 5 或者按 'q' 退出脚本:7
str_1 = 7



7、单独压缩app
Parallel mksquashfs: Using 16 processors
Creating 4.0 filesystem on app_V211028_N4XXX_M, block size 131072.
[============================================================================================================================================================================|] 823/823 100%

Exportable Squashfs 4.0 filesystem, xz compressed, data block size 131072
        compressed data, compressed metadata, compressed fragments, compressed xattrs
        duplicates are removed
Filesystem size 6154.00 Kbytes (6.01 Mbytes)
        41.91% of uncompressed filesystem size (14682.60 Kbytes)
Inode table size 4714 bytes (4.60 Kbytes)
        19.61% of uncompressed inode table size (24034 bytes)
Directory table size 7222 bytes (7.05 Kbytes)
        35.28% of uncompressed directory table size (20470 bytes)
Number of duplicate files found 33
Number of inodes 734
Number of files 726
Number of fragments 6
Number of symbolic links  0
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 8
Number of ids (unique uids + gids) 2
Number of uids 1
        liguoqiang (1024)
Number of gids 1
        rsteam (1096)
压缩app文件的名称 =  app_V211028_N4XXX_M
Input a number between 1 to 5 或者按 'q' 退出脚本:

#3# 功能6的打印

liguoqiang@raysharp-PowerEdge-R440:~/svnwork$ source ./a5.sh 5.07_8.2.1 8xxx 5-0 TOP 32 M 8.2.1 2056 8110 1766 1342 app_V211028_N4XXX_M
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1、创建今日份日期文件,且创建release、n文件夹以及下属的对应型号文件夹
2、svn导出最新程序
3、将app\gui中的编译好的文件,拷贝到release下对应型号文件夹下,并且压缩app文件
4、软连接试验,解压app
5、链接处下载ie包,反解压,压缩成ie格式
6、拿取N7XXX、N8XXX不支持序列号SN
7、单独压缩app或者删除
8、压缩app删除
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Input a number between 1 to 5 或者按 'q' 退出脚本:6
str_1 = 6
6、拿取N7XXX、N8XXX不支持序列号SN
拷贝8.2.1配置文件
Input a number between 1 to 5 或者按 'q' 退出脚本:6
str_1 = 6

6、拿取N7XXX、N8XXX不支持序列号SN
custom-config.ini文件存在
Input a number between 1 to 5 或者按 'q' 退出脚本:

a5版本脚本:

#!/bin/bash
###########################命令形式###########################
#1、source ./a3.sh 1.07_8.2.2 8xxx
#3、source ./a3.sh 1.07_8.2.2 8xxx 5-0 TOP 32 M
#2、source ./a3.sh 1.07_8.2.1 8xxx 5-0 TOP 32 M 8.2.1 2056 8110 1766 1342
#补充第3点:source ./a3.sh 5.07_8.2.1 8xxx 5-0 TOP 32 M 8.2.1 2056 8110 1766 1342 app_V211028_N4XXX_M
###########################命令形式###########################

filemkdir_1="release"
filemkdir_2="n"
mypath="/home/liguoqiang/svnwork"
App_release="/home/liguoqiang/svnwork/$1/hybrid_normal/APP/dvr/main/release"
Gui_Release="/home/liguoqiang/svnwork/$1/hybrid_normal/GUI"
kd=$PWD

echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
echo "1、创建今日份日期文件,且创建release、n文件夹以及下属的对应型号文件夹"
echo "2、svn导出最新程序"
echo "3、将app\gui中的编译好的文件,拷贝到release下对应型号文件夹下,并且压缩app文件"
echo "4、软连接试验,解压app"
echo "5、链接处下载ie包,反解压,压缩成ie格式"
echo "6、拿取N7XXX、N8XXX不支持序列号SN"
echo "7、单独压缩app或者删除"
echo "8、压缩app删除"
echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"

num=0
while :
do
    echo -n "Input a number between 1 to 5 或者按 'q' 退出脚本:"
    read str_1
    echo "str_1 = $str_1"
    case $str_1 in
    1)
        echo "指令1,创建日期文件夹以及release、n、对应型号文件夹"
        if [ $kd == $mypath ];then
            echo "当前路径是svnwork目录"
            (
                if [ ! -e $1 ];then
                    echo "$1不存在,开始创建$1"
                    mkdir $1
                    chmod -R 775 $1
                else
                    echo "$1存在,进入$1"
                    cd $1
                fi
            )
        else
            echo "非svnwork目录,进入svnwork目录,创建$2"
            cd /home/liguoqiang/svnwork
            (

                if [ ! -e $1 ];then
                    echo "$1不存在,开始创建$1"
                    mkdir $1
                    chmod -R 775 $1
                else
                    echo "$1存在,进入$1"
                    cd $1
                fi

            )
            pwd
        fi

        if [ ! -e $mypath/$1/$filemkdir_1/$2 ];then
            svc=($filemkdir_1 $filemkdir_2)
            num=${#svc[@]}
            echo "svc数组中的文件名有:${svc[*]} ; 数量num = $num"
            echo "文件创建路径:$mypath/$1"
            for ((i=0;i<num;i++))
            do
                mkdir  -p $1/${svc[$i]}/$2
                chmod -R 775 $1/${svc[$i]}/$2
            done
        else
            echo "release、n中的$2文件已经存在,请执行其他步骤或输入 'q' 退出"
        fi
     ;;

     2)
        echo "指令2,下载SVN链接"
        echo "版本下载Input a number between 1 to 5 或者按 'q' 退出case 2(下载链接选择):"
        echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
        echo "1、hybrid_normal下载"
        echo "2、core_lib_light下载"
        echo "3、rslib_normal下载"
        echo "4、rslib_custom下载"
        echo "5、实验功能:删除rslib_custom、rslib_normal重新下载"
        echo "q、退出外层case 2(下载链接选择),进入到外层"
        echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
        if [ -e $1 ] && [ "8.2.1" == $7 ];then
            cd $1
            while :
            do
                read str_2
                echo $str_2
                case $str_2 in
                1)
                    svn co -r$8 http://172.18.1.242/svn/hybrid/hybrid-8.2.1/hybrid_normal
                ;;
                2)
                    svn co -r$9 http://172.18.1.242/svn/RS-DEVICE-MODULE/network-module/release/debug/core_lib_light
                ;;
                3)
                    svn co -r${10} http://172.18.1.242/svn/hybrid/hybrid-8.2.1/rslib_normal
                ;;
                4)
                    svn co -r${11} http://172.18.1.242/svn/hybrid/hybrid-8.2.1/rslib_custom
                ;;
                5)
                    if [ -e $mypath/$1/rslib_custom ];then
                        rm $mypath/$1/rslib_custom -rf
                    else
                        echo "rslib_custom不存在,请下载"
                    fi

                    if [ -e $mypath/$1/rslib_normal ];then
                        rm $mypath/$1/rslib_normal -rf
                    else
                        echo "rslib_normal不存在,请下载"
                    fi
                ;;
                q)
                echo "退出while循环"
                break
                ;;
                esac

            #break
            done
         else
             echo "{7}=$7"
             break
         fi
         cd $mypath
     ;;

     3)
        echo "指令3,将app\gui中的编译好的文件,拷贝到release下对应型号文件夹下,并且压缩app文件"
        if [ -e $1 ];then
            if [ -e $App_release ];then
                    #echo "cp $1/hybrid_normal/APP/dvr/main/release/*"
                    #echo "GUI脚本路径:$Gui_Release/copy_uirelease.sh"
                    #echo "GUI脚本命令参:$3 $4 $5 $6 $mypath/$1/$filemkdir_1/$2/"
                    #./copy_uirelease.sh 5-0 TOP 32 M ../../release/n7xxx

                    chmod -R 777 $App_release/*
                    if [ $2 != "" ];then
                        echo "cp $App_release/* $mypath/$1/$filemkdir_1/$2/ -rf"
                        cp $App_release/* $mypath/$1/$filemkdir_1/$2/ -rf
                    else
                        echo "$2文件不存在,app拷贝无去向,请重新执行脚本命令 '1' "
                        return
                    fi

                    chmod -R 777 $Gui_Release/*
                    cd $Gui_Release
                    if [ $3 != "" ] && [ $4 != "" ] && [ $5 != "" ] && [ $6 != "" ] && [ $$mypath/$1/$filemkdir_1/$2 != "" ];then
                        #执行GUI脚本拷贝
                        ./copy_uirelease.sh $3 $4 $5 $6 $mypath/$1/$filemkdir_1/$2/
                    else
                        echo "执行GUI脚本拷贝命令参不全,请补全命令参,并重新执行脚本"
                        return
                    fi


                    cd  $mypath/$1/$filemkdir_1
                    chmod -R 777 ./*
                    mksquashfs  $2  ${12} -comp xz
                    chmod  777  ${12}  -R
                    echo "压缩app文件的名称 = " ${12}

                    cd $mypath
                    #return
             else
                    echo "没有执行第2步中的hybrid_normal下载,app中的release文件夹不存在,请先执行'case 2'"
            fi
        else
            echo "$1文件不存在"
            return
        fi

    ;;
    6)
        echo "6、拿取N7XXX、N8XXX不支持序列号SN"

        if [ -e $1 ] && [ "7xxx" == "$2" ] && [ ! -f $mypath/$1/$filemkdir_1/$2/custom-config.ini ];then
        echo "拷贝8.2.2配置文件"
        cp $mypath/$1/hybrid_normal/APP/dvr/main/tools/config/standard/N7XXX/不支持序列号\(SN\)/* $mypath/$1/$filemkdir_1/$2/ -rf
        elif [ -e $1 ] && [ "8xxx" == "$2" ] && [ ! -f $mypath/$1/$filemkdir_1/$2/custom-config.ini ];then
        echo "拷贝8.2.1配置文件"
        cp $mypath/$1/hybrid_normal/APP/dvr/main/tools/config/standard/N8XXX/不支持序列号\(SN\)/* $mypath/$1/$filemkdir_1/$2/ -rf
        else
            echo "custom-config.ini文件存在"
        fi

    ;;
    7)
        echo "7、单独压缩app"
        if [ ! -f $mypath/$1/$filemkdir_1/${12} ] && [ -e $mypath/$1 ];then
            cd  $mypath/$1/$filemkdir_1
            chmod -R 777 ./*
            mksquashfs  $2  ${12} -comp xz
            chmod  777  ${12}  -R
            echo "压缩app文件的名称 = " ${12}

            cd $mypath
        else
            echo "$1文件不存在,请先执行步骤1"
        fi
    ;;
    8)
        echo "8、压缩app删除,进入$mypath/$1/$filemkdir_1"
        if [ -e $mypath/$1/$filemkdir_1/${12} ];then
            cd $mypath/$1/$filemkdir_1

            rm ${12}
            cd $mypath
         else
            echo "app文件不存在,无需删除"
        fi
    ;;
    q)
        echo "========================="
        echo "退出脚本!!!"
        echo "========================="
        break

    ;;
    esac
done

当前全部功能正常打印:


liguoqiang@raysharp-PowerEdge-R440:~/svnwork$ source ./a3.sh 2022_8.2.1 7xxx 5-0 TOP 32 M 8
.2.0 2056 8110 1766 1342 app_V211028_N4XXX_M
验证打印****************/ 2022_8.2.1 /**************
打印数组元素: /home/liguoqiang/svnwork/2022_8.2.1/hybrid_UI5.0_Normal_API 
打印数组元素: /home/liguoqiang/svnwork/2022_8.2.1/n 
打印数组元素: /home/liguoqiang/svnwork/2022_8.2.1/release 
2、 n文件已存在 : destdir_n = n
打印:release  /home/liguoqiang/svnwork/2022_8.2.1/release
release目录下的文件=/home/liguoqiang/svnwork/2022_8.2.1/release/7xxx
release目录下的文件=/home/liguoqiang/svnwork/2022_8.2.1/release/8xxx
1、 release文件已存在 : destdir_release = release 
release文件存在
7xxx  参数2=/home/liguoqiang/svnwork/2022_8.2.1/release/7xxx
8xxx  参数2=/home/liguoqiang/svnwork/2022_8.2.1/release/7xxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1、创建今日份日期文件,且创建release、n文件夹以及下属的对应型号文件夹
2、svn导出最新程序
3、将app\gui中的编译好的文件,拷贝到release下对应型号文件夹下,并且压缩app文件
4、软连接试验,解压app
5、链接处下载ie包,反解压,压缩成ie格式
6、拿取N7XXX、N8XXX不支持序列号SN
7、单独压缩app或者删除
8、压缩app删除
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Input a number between 1 to 8 或者按 'q' 退出脚本:1
str_1 = 1
指令1,创建日期文件夹以及release、n、对应型号文件夹
当前路径是svnwork目录
2022_8.2.1存在,进入2022_8.2.1
release、n中的7xxx文件已经存在,请执行其他步骤或输入 'q' 退出
Input a number between 1 to 8 或者按 'q' 退出脚本:2
str_1 = 2
指令2,下载SVN链接
版本下载Input a number between 1 to 5 或者按 'q' 退出case 2(下载链接选择):
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1、hybrid_normal下载
2、core_lib_light下载
3、rslib_normal下载
4、rslib_custom下载
5、实验功能:删除rslib_custom、rslib_normal重新下载
q、退出外层case 2(下载链接选择),进入到外层
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
{7}=8.2.0
Input a number between 1 to 8 或者按 'q' 退出脚本:3
str_1 = 3
指令3,将app\gui中的编译好的文件,拷贝到release下对应型号文件夹下,并且压缩app文件
cp /home/liguoqiang/svnwork/2022_8.2.1/hybrid_UI5.0_Normal_API/APP/dvr/main/release/* /home/liguoqiang/svnwork/2022_8.2.1/release/7xxx/ -rf
cp Release/images_5-0
cp no_video_TOPCAM.png
cp Release/language_TOP/*
cp Release/style_5-0
cp Release/font/yahei_arial_gothic_unicode[full]_32M.ttf
Parallel mksquashfs: Using 16 processors
Creating 4.0 filesystem on app_V211028_N4XXX_M, block size 131072.
[=========================================================================|] 1509/1509 100%

Exportable Squashfs 4.0 filesystem, xz compressed, data block size 131072
        compressed data, compressed metadata, compressed fragments, compressed xattrs
        duplicates are removed
Filesystem size 51009.23 Kbytes (49.81 Mbytes)
        48.72% of uncompressed filesystem size (104693.90 Kbytes)
Inode table size 6792 bytes (6.63 Kbytes)
        25.39% of uncompressed inode table size (26754 bytes)
Directory table size 7174 bytes (7.01 Kbytes)
        35.98% of uncompressed directory table size (19940 bytes)
Number of duplicate files found 34
Number of inodes 730
Number of files 719
Number of fragments 10
Number of symbolic links  0
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 11
Number of ids (unique uids + gids) 2
Number of uids 1
        liguoqiang (1024)
Number of gids 1
        rsteam (1096)
压缩app文件的名称 =  app_V211028_N4XXX_M
Input a number between 1 to 8 或者按 'q' 退出脚本:6
str_1 = 6
6、拿取N7XXX、N8XXX不支持序列号SN
custom-config.ini文件存在
Input a number between 1 to 8 或者按 'q' 退出脚本:8
str_1 = 8
8、压缩app删除,删除目录/home/liguoqiang/svnwork/2022_8.2.1/release
Input a number between 1 to 8 或者按 'q' 退出脚本:7
str_1 = 7
7、单独压缩app
Parallel mksquashfs: Using 16 processors
Creating 4.0 filesystem on app_V211028_N4XXX_M, block size 131072.
[=========================================================================\] 1509/1509 100%

Exportable Squashfs 4.0 filesystem, xz compressed, data block size 131072
        compressed data, compressed metadata, compressed fragments, compressed xattrs
        duplicates are removed
Filesystem size 51009.20 Kbytes (49.81 Mbytes)
        48.72% of uncompressed filesystem size (104693.90 Kbytes)
Inode table size 6760 bytes (6.60 Kbytes)
        25.27% of uncompressed inode table size (26754 bytes)
Directory table size 7174 bytes (7.01 Kbytes)
        35.98% of uncompressed directory table size (19940 bytes)
Number of duplicate files found 34
Number of inodes 730
Number of files 719
Number of fragments 10
Number of symbolic links  0
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 11
Number of ids (unique uids + gids) 2
Number of uids 1
        liguoqiang (1024)
Number of gids 1
        rsteam (1096)
压缩app文件的名称 =  app_V211028_N4XXX_M
Input a number between 1 to 8 或者按 'q' 退出脚本:
str_1 = 
Input a number between 1 to 8 或者按 'q' 退出脚本:4
str_1 = 4
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1、创建今日份日期文件,且创建release、n文件夹以及下属的对应型号文件夹
2、svn导出最新程序
3、将app\gui中的编译好的文件,拷贝到release下对应型号文件夹下,并且压缩app文件
4、软连接试验,解压app
5、链接处下载ie包,反解压,压缩成ie格式
6、拿取N7XXX、N8XXX不支持序列号SN
7、单独压缩app或者删除
8、压缩app删除
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Input a number between 1 to 8 或者按 'q' 退出脚本:q
str_1 = q
=========================
退出脚本!!!
=========================
liguoqiang@raysharp-PowerEdge-R440:~/svnwork$ 

当前全部功能代码shell

#!/bin/bash
###########################命令形式###########################
#1、source ./a3.sh 1.07_8.2.2 8xxx
#3、source ./a3.sh 1.07_8.2.2 8xxx 5-0 TOP 32 M
#2、source ./a3.sh 1.07_8.2.1 8xxx 5-0 TOP 32 M 8.2.1 2056 8110 1766 1342
#补充第3点:source ./a3.sh 2022_8.2.1 7xxx 5-0 TOP 32 M 8.2.1 2056 8110 1766 1342 app_V211028_N4XXX_M
###########################命令形式###########################


ConvenientDirectory()
{
    project_name="${destdir##*/}"      #只拿取destdir路径下的最后一个文件名
    echo "验证打印****************/ $project_name /**************"


#***************************1**拿到/home/liguoqiang/svnwork 下的所有文件夹名称***************************

    index=0
    for file_a in ${destdir}/*
    do
        temp_file=`basename $file_a`            #只拿取路径下的最后一个文件名到temp_file
        num[index]=$file_a                      #destdir路径下的全部文件及其路径,给到 num 数组中的元素

        echo "打印数组元素: ${num[index]} "
        #echo "打印****************/ $temp_file /**************"
        ((index++))
    done


#***********************2***遍历num数组中 下的元素个数,拿到release、n文件夹名称,且给file数组赋值****************
    for i in ${!num[@]};
    do
        if [ ${num[i]##*/} == $filemkdir_1 ];then
            echo "打印:${num[i]##*/}  ${num[i]}"
            destdir_release=${num[i]##*/}
            {
                index_1=0
                for file_xxx in ${num[i]}/*     #遍历 num 数组中元素release目录下所有文件名到数组 file 中
                do
                    release_Nxxxx=`basename $file_xxx`
                    file[index_1]=$file_xxx
                    echo "release目录下的文件=${file[index_1]}"
                    ((index_1++))
                done
            }
           echo "1、 release文件已存在 : destdir_release = $destdir_release "

        elif [ ${num[i]##*/} ==  $filemkdir_2 ];then
            destdir_n=${num[i]##*/}
            echo "2、 n文件已存在 : destdir_n = $destdir_n"
        fi

    done

    if [ $destdir_release != "" ];then
        echo "release文件存在"
    else
        echo "release文件不存在"
    fi
#*****************************遍历file数组中 下的元素个数,拿到release下文件夹名称******************************************************************
    for i in ${!file[@]};
    do
        echo "${file[i]##*/}  参数2=$destdir/$1$destdir_release/$parameter2"

    done

}

CodeExecution()
{
    echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
    echo "1、创建今日份日期文件,且创建release、n文件夹以及下属的对应型号文件夹"
    echo "2、svn导出最新程序"
    echo "3、将app\gui中的编译好的文件,拷贝到release下对应型号文件夹下,并且压缩app文件"
    echo "4、软连接试验,解压app"
    echo "5、链接处下载ie包,反解压,压缩成ie格式"
    echo "6、拿取N7XXX、N8XXX不支持序列号SN"
    echo "7、单独压缩app或者删除"
    echo "8、压缩app删除"
    echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"

    while :
    do
        echo -n "Input a number between 1 to 8 或者按 'q' 退出脚本:"
        read str_1
        echo "str_1 = $str_1"
        case $str_1 in
        1)
            echo "指令1,创建日期文件夹以及release、n、对应型号文件夹"
            if [ $kd == $mypath ];then
                echo "当前路径是svnwork目录"
                (
                    if [ ! -e $destdir ];then
                        echo "$parameter1不存在,开始创建$parameter1"
                        mkdir $parameter1
                        chmod -R 775 $parameter1
                    else
                        echo "$parameter1存在,进入$parameter1"
                        cd $destdir
                    fi
                )
            else
                echo "非svnwork目录,进入svnwork目录,创建$1"
                cd /home/liguoqiang/svnwork
                (

                    if [ ! -e $destdir ];then
                        echo "$parameter1不存在,开始创建$parameter1"
                        mkdir $parameter1
                        chmod -R 775 $parameter1
                    else
                        echo "$parameter1存在,进入$parameter1"
                        cd $destdir
                    fi

                )
                pwd
            fi

            if [ ! -e $destdir/$filemkdir_1/$parameter2 ];then
            #if [ $destdir_release == "" ];then
                svc=($filemkdir_1 $filemkdir_2)
                num=${#svc[@]}
                echo "svc数组中的文件名有:${svc[*]} ; 数量num = $num"
                echo "文件创建路径:$mypath/$parameter1"
                for ((i=0;i<num;i++))
                do
                    mkdir  -p $parameter1/${svc[$i]}/$parameter2 #创建该条文件夹路线上的所有文件
                    chmod -R 775 $parameter1/${svc[$i]}/$parameter2
                done
            else
                echo "$destdir_release$destdir_n中的$parameter2文件已经存在,请执行其他步骤或输入 'q' 退出"
            fi
         ;;

         2)
            echo "指令2,下载SVN链接"
            echo "版本下载Input a number between 1 to 5 或者按 'q' 退出case 2(下载链接选择):"
            echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
            echo "1、hybrid_normal下载"
            echo "2、core_lib_light下载"
            echo "3、rslib_normal下载"
            echo "4、rslib_custom下载"
            echo "5、实验功能:删除rslib_custom、rslib_normal重新下载"
            echo "q、退出外层case 2(下载链接选择),进入到外层"
            echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
            if [ -e $destdir ] && [ "8.2.1" == $parameter7 ];then
                cd $destdir
                while :
                do
                    read str_2
                    echo $str_2
                    case $str_2 in
                    1)
                        svn co -r$parameter8 http://172.18.1.242/svn/hybrid/hybrid-8.2.1/hybrid_normal
                    ;;
                    2)
                        svn co -r$parameter9 http://172.18.1.242/svn/RS-DEVICE-MODULE/network-module/release/debug/core_lib_light
                    ;;
                    3)
                        svn co -r$parameter10 http://172.18.1.242/svn/hybrid/hybrid-8.2.1/rslib_normal
                    ;;
                    4)
                        svn co -r$parameter11 http://172.18.1.242/svn/hybrid/hybrid-8.2.1/rslib_custom
                    ;;
                    5)
                        if [ -e $destdir/rslib_custom ];then
                            rm $destdir/rslib_custom -rf
                            echo "rm rslib_custom!!!"
                        else
                            echo "rslib_custom不存在,请下载"
                        fi

                        if [ -e $destdir/rslib_normal ];then
                            rm $destdir/rslib_normal -rf
                            echo "rm rslib_normal!!!"
                        else
                            echo "rslib_normal不存在,请下载"
                        fi
                    ;;
                    q)
                    echo "退出while循环"
                    break
                    ;;
                    esac

                #break
                done
             else
                 echo "{7}=$parameter7"
             fi
             cd $mypath
         ;;

         3)
            echo "指令3,将app\gui中的编译好的文件,拷贝到release下对应型号文件夹下,并且压缩app文件"
            if [ -e $destdir ];then
                if [ -e $App_release ] || [ -e $App_release_8_2_0 ];then
                        #echo "cp $1/hybrid_normal/APP/dvr/main/release/*"
                        #echo "GUI脚本路径:$Gui_Release/copy_uirelease.sh"
                        #echo "GUI脚本命令参:$3 $4 $5 $6 $mypath/$1/$filemkdir_1/$2/"
                        #./copy_uirelease.sh 5-0 TOP 32 M ../../release/n7xxx
                    if [ -f $mypath/$parameter1/$filemkdir_1/$parameter2/custom-config.ini ];then

                        if [ $parameter2 != "" ];then
                            if [ "8.2.1" == $parameter7 ] || [ "8.2.1" == $parameter7 ];then
                                echo "cp $App_release/* $mypath/$parameter1/$filemkdir_1/$parameter2/ -rf"
                                #chmod -R 777 $App_release/*
                                cp $App_release/* $mypath/$parameter1/$filemkdir_1/$parameter2/ -rf
                            elif [ "8.2.0" == $parameter7 ];then
                                echo "cp $App_release_8_2_0/* $mypath/$parameter1/$filemkdir_1/$parameter2/ -rf"
                                #chmod -R 777 $App_release_8_2_0/*
                                cp $App_release_8_2_0/* $mypath/$parameter1/$filemkdir_1/$parameter2/ -rf
                            else
                                echo "$parameter7不是2.1、2.2、2.0三种型号"
                            fi
                        else
                            echo "$parameter2文件不存在,app拷贝无去向,请重新执行脚本命令 '1' "
                            return
                        fi


                        if [ $parameter3 != "" ] && [ $parameter4 != "" ] && [ $parameter5 != "" ] && [ $parameter6 != "" ] && [ $mypath/$parameter1/$filemkdir_1/$parameter2 != "" ];then
                            #执行GUI脚本拷贝
                             if [ "8.2.1" == $parameter7 ] || [ "8.2.1" == $parameter7 ];then
                                 chmod -R 777 $Gui_Release/*
                                 cd $Gui_Release
                                ./copy_uirelease.sh $parameter3 $parameter4 $parameter5 $parameter6 $mypath/$parameter1/$filemkdir_1/$parameter2/
                             elif [ "8.2.0" == $parameter7 ];then
                                 chmod -R 777 $Gui_Release_8_2_0/*
                                 cd $Gui_Release_8_2_0
                                ./copy_uirelease.sh $parameter3 $parameter4 $parameter5 $parameter6 $mypath/$parameter1/$filemkdir_1/$parameter2/
                             fi

                        else
                            echo "执行GUI脚本拷贝命令参不全,请补全命令参,并重新执行脚本"
                            return
                        fi
                    else
                        echo "配置文件没有方置,请执行步骤'6'"
                    fi

                        cd  $mypath/$parameter1/$filemkdir_1
                        chmod -R 777 ./*
                        mksquashfs  $parameter2  $parameter12 -comp xz
                        chmod  777  $parameter12  -R
                        echo "压缩app文件的名称 = " $parameter12

                        cd $mypath
                        #return
                 else
                        echo "没有执行第2步中的hybrid_normal下载,app中的release文件夹不存在,请先执行'case 2'"
                fi
            else
                echo "$destdir文件不存在"
                return
            fi

        ;;
        4)
        echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
        echo "1、创建今日份日期文件,且创建release、n文件夹以及下属的对应型号文件夹"
        echo "2、svn导出最新程序"
        echo "3、将app\gui中的编译好的文件,拷贝到release下对应型号文件夹下,并且压缩app文件"
        echo "4、软连接试验,解压app"
        echo "5、链接处下载ie包,反解压,压缩成ie格式"
        echo "6、拿取N7XXX、N8XXX不支持序列号SN"
        echo "7、单独压缩app或者删除"
        echo "8、压缩app删除"
        echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
        ;;
        6)
            echo "6、拿取N7XXX、N8XXX不支持序列号SN"
            if [ -e $destdir ] && [ ! -f $mypath/$parameter1/$filemkdir_1/$parameter2/custom-config.ini ];then
                if [ "8.2.1" == $parameter7 ] || [ "8.2.2" == $parameter7 ];then
                    if [ "7xxx" == "$parameter2" ];then
                        echo "拷贝8.2.2配置文件 \ 拷贝8.2.1配置文件"
                        cp $destdir/hybrid_normal/APP/dvr/main/tools/config/standard/N7XXX/不支持序列号\(SN\)/* $mypath/$parameter1/$filemkdir_1/$parameter2/ -rf

                    elif [ "8xxx" == "$parameter2" ];then
                        echo "拷贝8.2.2配置文件 \ 拷贝8.2.1配置文件"
                        cp $destdir/hybrid_normal/APP/dvr/main/tools/config/standard/N8XXX/不支持序列号\(SN\)/* $mypath/$parameter1/$filemkdir_1/$parameter2/ -rf
                    fi
                elif [ "8.2.0" == "$parameter7" ];then
                    if  [ "8xxx" == "$parameter2" ];then
                        echo "拷贝8.2.0   8xxx配置文件"
                        #Z:\svnwork\5.07_8.2.1\hybrid_UI5.0_Normal_API\APP\dvr\main\tools\config\standard\N7XXX\不支持序列号(SN)
                        cp $destdir/hybrid_UI5.0_Normal_API/APP/dvr/main/tools/config/standard/N8XXX/不支持序列号\(SN\)/* $mypath/$parameter1/$filemkdir_1/$parameter2/ -rf

                    elif  [ "7xxx" == "$parameter2" ];then
                        echo "拷贝8.2.0   7xxx配置文件"
                        #Z:\svnwork\5.07_8.2.1\hybrid_UI5.0_Normal_API\APP\dvr\main\tools\config\standard\N7XXX\不支持序列号(SN)
                        cp $destdir/hybrid_UI5.0_Normal_API/APP/dvr/main/tools/config/standard/N7XXX/不支持序列号\(SN\)/* $mypath/$parameter1/$filemkdir_1/$parameter2/ -rf

                    elif  [ "nvr" == "$parameter2" ];then
                        echo "拷贝8.2.0   7xxx配置文件"
                        #Z:\svnwork\5.07_8.2.1\hybrid_UI5.0_Normal_API\APP\dvr\main\tools\config\standard\N7XXX\不支持序列号(SN)
                        cp $destdir/hybrid_UI5.0_Normal_API/APP/dvr/main/tools/config/standard/NVR/不支持序列号\(SN\)/* $mypath/$parameter1/$filemkdir_1/$parameter2/ -rf
                    fi
                else
                    echo "$parameter2命令参,不存在"
                fi
            else
               echo "custom-config.ini文件存在"
            fi

        ;;
        7)
            echo "7、单独压缩app"
            if [ ! -f $mypath/$parameter1/$filemkdir_1/$parameter12 ] && [ -e $mypath/$parameter1/$filemkdir_1/$parameter2 ];then
                cd  $mypath/$parameter1/$filemkdir_1
                chmod -R 777 ./*
                mksquashfs  $parameter2  $parameter12 -comp xz
                chmod  777  $parameter12  -R
                echo "压缩app文件的名称 = " $parameter12

                cd $mypath
            else
                echo "$1文件不存在,请先执行步骤1"
            fi
        ;;
        8)
            echo "8、压缩app删除,删除目录$mypath/$parameter1/$filemkdir_1"
            if [ -e $mypath/$parameter1/$filemkdir_1/$parameter12 ];then
                cd $mypath/$parameter1/$filemkdir_1
                rm $parameter12

                cd $mypath
            else
                echo "app文件不存在,无需删除"
            fi
        ;;
        q)
            echo "========================="
            echo "退出脚本!!!"
            echo "========================="
            break

        ;;
        esac
    done
}


filemkdir_1="release"
filemkdir_2="n"
mypath="/home/liguoqiang/svnwork"
App_release="/home/liguoqiang/svnwork/$1/hybrid_normal/APP/dvr/main/release"
Gui_Release="/home/liguoqiang/svnwork/$1/hybrid_normal/GUI"
App_release_8_2_0="/home/liguoqiang/svnwork/$1/hybrid_UI5.0_Normal_API/APP/dvr/main/release"
Gui_Release_8_2_0="/home/liguoqiang/svnwork/$1/hybrid_UI5.0_Normal_API/GUI"
kd=$PWD

#补充第3点:source ./a3.sh 5.07_8.2.1 8xxx 5-0 TOP 32 M 8.2.1 2056 8110 1766 1342 app_V211028_N4XXX_M
#++++++++++++++++++++++++++++++++++++++++++++++++++++
#shell位置变量对应
#++++++++++++++++++++++++++++++++++++++++++++++++++++
parameter1=$1
parameter2=$2
parameter3=$3
parameter4=$4
parameter5=$5
parameter6=$6
parameter7=$7
parameter8=$8
parameter9=$9
parameter10=${10}
parameter11=${11}
parameter12=${12}
#13=${13}
#14=${14}
destdir=$mypath/$1
if [ ! -e $destdir ];then
    echo "ERROR: No such destdir: $destdir"
    exit
fi

ConvenientDirectory
CodeExecution

#text_1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扳手的海角

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值