在Linux环境下实现一个非常好的bash脚本框架

来源:互联网 发布:mac激活时间查询 编辑:程序博客网 时间:2024/06/09 16:12

为了方便我日常工作中的编译环境,免去我敲命令行所浪费的时间,我个人写了一个非常有用而又简单的脚本框架,该框架即可以完成的工程源码编译,也可以清除,拷贝等等操作,具体需要开发者自己来实现细节,我的框架思路就是用到了bash shell脚本的case语句,这个语句类似我们C语言的switch语句,有若干个分支,接下来我们就来看看具体的编写方法:

#bin/sh#date:2016.10.20#author:yang yuanxin#!/bin/bash#判断传进来的参数,没有参数返回出错if [ $# -lt 1 ]; then    echo "error.. need build eng or clean"    exit 1fi#选择编译版本,make all 或者 make clean 或者打包工程#其中 make all会编译工程#make clean会清除工程#make package会打包工程,将需要下载的文件放到/build/LFPfor arg in "$@"do    case $arg in    "all")      #第一个参数#可以编写自己工程的一些操作,比如编译,拷贝等。    ;;    "clean")      ;;    "package")      ;;*)  echo '...' #这里类似C语言的switch语句的default分支    ;;esacbreak ;done


以下是我在开发中写的一个脚本,拿去改改就可以实现你自己的,非常简单,框架就是这样,万能!
#bin/sh#date:2016.10.20#author:yang yuanxin#!/bin/bash#判断传进来的参数,没有参数返回出错if [ $# -lt 1 ]; then    echo "error.. need build eng or clean"    exit 1fi#选择编译版本,make all 或者 make clean 或者打包工程#其中 make all会编译工程#make clean会清除工程#make package会打包工程,将需要下载的文件放到/build/LFPfor arg in "$@"docase $arg in    "all")  echo 'You select build all eng'cd /home/se0803/deloreansudo ./build.sh -v -p delorean allif test $?thenecho "build eng success!"elseecho "build eng fair!"exit 1fils -l /home/se0803/delorean/deploy/delorean_bootloader.bin      ls -l /home/se0803/delorean/deploy/delorean_base.binls -l /home/se0803/delorean/deploy/delorean_base_comp.binls -l /home/se0803/delorean/filesys-us  filesys-uk  filesys-bulksudo chmod 777  /home/se0803/delorean/delorean/ -Rsudo chmod 777  /home/se0803/delorean/deploy/*sudo chmod 777  filesys-bulk filesys-uk filesys-uscp /home/se0803/delorean/deploy/delorean_bootloader.bin  /home/se0803/delorean/delorean/deploy/ -rcp /home/se0803/delorean/deploy/delorean_base.bin     /home/se0803/delorean/delorean/deploy/ -r cp /home/se0803/delorean/deploy/delorean_base_comp.bin   /home/se0803/delorean/delorean/deploy/ -rcp /home/se0803/delorean/filesys-bulk filesys-uk filesys-us    /home/se0803/delorean/delorean/filesys  -Rif test $?thensudo echo "cp file success"  >> /dev/nullcdelseecho "cp file error"exit 2fi    ;;    "clean")  echo 'You select clean all eng'cd /home/se0803/deloreansudo ./build.sh -c -p delorean allif test $?thenecho "build clean success!"else echo "build clean fair!"exit 1 fi;;"package")  echo 'You select Packaging and Deployment'cd /home/se0803/deloreanchmod 755 deploy/*./build.sh -w -p delorean allecho "Firmware build success!"ls -l builds/LFP/*;;*)  echo 'You do not select a number between build or clean or make package'    ;;esacbreak ;done


0 0
原创粉丝点击