在Linux环境下实现一个非常好的bash脚本框架
为了方便我日常工作中的编译环境,免去我敲命令行所浪费的时间,我个人写了一个非常有用而又简单的脚本框架,该框架即可以完成的工程源码编译,也可以清除,拷贝等等操作,具体需要开发者自己来实现细节,我的框架思路就是用到了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 1 fi #选择编译版本,make all 或者 make clean 或者打包工程 #其中 make all会编译工程 #make clean会清除工程 #make package会打包工程,将需要下载的文件放到/build/LFP for arg in "$@" do case $arg in "all") #第一个参数 #可以编写自己工程的一些操作,比如编译,拷贝等。 ;; "clean") ;; "package") ;; *) echo '...' #这里类似C语言的switch语句的default分支 ;; esac break ; done
以下是我在开发中写的一个脚本,拿去改改就可以实现你自己的,非常简单,框架就是这样,万能!
#bin/sh #date:2016.10.20 #author:yang yuanxin #!/bin/bash #判断传进来的参数,没有参数返回出错 if [ $# -lt 1 ]; then echo "error.. need build eng or clean" exit 1 fi #选择编译版本,make all 或者 make clean 或者打包工程 #其中 make all会编译工程 #make clean会清除工程 #make package会打包工程,将需要下载的文件放到/build/LFP for arg in "$@" do case $arg in "all") echo 'You select build all eng' cd /home/se0803/delorean sudo ./build.sh -v -p delorean all if test $? then echo "build eng success!" else echo "build eng fair!" exit 1 fi ls -l /home/se0803/delorean/deploy/delorean_bootloader.bin ls -l /home/se0803/delorean/deploy/delorean_base.bin ls -l /home/se0803/delorean/deploy/delorean_base_comp.bin ls -l /home/se0803/delorean/filesys-us filesys-uk filesys-bulk sudo chmod 777 /home/se0803/delorean/delorean/ -R sudo chmod 777 /home/se0803/delorean/deploy/* sudo chmod 777 filesys-bulk filesys-uk filesys-us cp /home/se0803/delorean/deploy/delorean_bootloader.bin /home/se0803/delorean/delorean/deploy/ -r cp /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/ -r cp /home/se0803/delorean/filesys-bulk filesys-uk filesys-us /home/se0803/delorean/delorean/filesys -R if test $? then sudo echo "cp file success" >> /dev/nullcd else echo "cp file error" exit 2 fi ;; "clean") echo 'You select clean all eng' cd /home/se0803/delorean sudo ./build.sh -c -p delorean all if test $? then echo "build clean success!" else echo "build clean fair!" exit 1 fi ;; "package") echo 'You select Packaging and Deployment' cd /home/se0803/delorean chmod 755 deploy/* ./build.sh -w -p delorean all echo "Firmware build success!" ls -l builds/LFP/* ;; *) echo 'You do not select a number between build or clean or make package' ;; esac break ; done
在Linux环境下实现一个非常好的bash脚本框架的更多相关文章
- linux环境下安装可操作图库语言Gremlin的图框架HugeGraph
原创/朱季谦 图数据库是一项比较前沿而逐渐热门的技术,是NoSql数据库的一种,它应用图形理论存储实体之间的关系信息,最主要的组成有两种,结点集和连接结点的边.常见的图数据库有Neo4j,Januas ...
- Linux环境下部署完JDK后运行一个简单的Java程序
前言 前一篇文章详细讲解了如何在Windows环境下安装虚拟机+Linux系统,并且成功部署了JDK. 不过部署完JDK之后,我们判断部署是否成功的依据是看"java -version&qu ...
- 由一个简单需求到Linux环境下的syslog、unix domain socket
本文记录了因为一个简单的日志需求,继而对linux环境下syslog.rsyslog.unix domain socket的学习.本文关注使用层面,并不涉及rsyslog的实现原理,感兴趣的读者可以参 ...
- linux 环境下运行STS时 出现must be available in order to run STS
linux 环境下运行ECLIPSE时 出现 “ A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be avai ...
- linux环境下学习使用pro*c/c++工具
1.proc是oracle用来预编译嵌入SQL语句的c程序. 2.如何使用proc工具 在Linux环境下,首先确保gcc编译器正常使用,安装oracle数据库或者客户端,一般就会默认安装pro*c/ ...
- Linux环境下段错误的产生原因及调试方法小结(转)
最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且 项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间最长的问题就是著名的“段错误”(Segmentation F ...
- java 在linux环境下写入 syslog 问题研究
1.Syslog 在Unix类操作系统上,syslog广泛应用于系统日志.syslog日志消息既可以记录在本地文件中,也可以通过网络发送到接收syslog的服务器.接收syslog的服务器可以对多个设 ...
- 【环境配置】Linux环境下下载、配置java环境、安装eclipse、建立eclipse快捷方式详解
一.首先是下载Java JDK 到目前为止的最新版本为(jdk1.8.0_60),有两种方式进行下载: 1.使用shell来进行下载,可使用如下命令直接进行下载: wget --no-check-ce ...
- Linux环境下安装Tigase XMPP Server
Tigase是一种XMPP服务器,可以作为采用XMPP协议的各种IM(Instant Messeging)工具(如Pandion.Spark等)的服务器. 在Linux环境下安装Tigase的步骤如下 ...
随机推荐
- [HNOI 2015]亚瑟王
Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最后一战,就一定要打得漂 亮.众所周知,亚瑟王是一 ...
- codeforces 523D tatistics of Recompressing Videos
一个称为DH(DogHouse)的狗的社交网络有k台专用服务器来重新上传可爱的猫的上传视频.每个视频上传后,应该在一个(任何)服务器上重新压缩,之后才可以保存在社交网络中. 我们知道每个服务器需要一秒 ...
- ●BZOJ 1853 [Scoi2010]幸运数字
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=1853 题解: 容斥原理,暴力搜索,剪枝(这剪枝剪得真玄学) 首先容易发现,幸运号码不超过 2 ...
- 笔记12 注入AspectJ切面
虽然Spring AOP能够满足许多应用的切面需求,但是与AspectJ相比, Spring AOP 是一个功能比较弱的AOP解决方案.AspectJ提供了Spring AOP所不能支持的许多类型的切 ...
- Java Servlet 笔记4
Servlet 客户端 HTTP 请求 当浏览器请求网页时,它会向 Web 服务器发送特定信息,这些信息不能被直接读取,因为这些信息是作为 HTTP 请求的头的一部分进行传输的. 读取 HTTP 头的 ...
- IP地址、子网掩码、网关、DNS服务器
1. IP地址 IP是英文Internet Protocol的缩写,意思是"网络之间互连的协议",也就是为计算机网络相互连接进行通信而设计的协议.在因特网中,它是能使连接到网上的所 ...
- python2.7练习小例子(三)
3):题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 程序分析:假设该数为 x.1.则:x + 100 = n2, x + 100 + ...
- Qone 正式开源,使 javascript 支持 .NET LINQ
Qone 下一代 Web 查询语言,使 javascript 支持 LINQ Github: https://github.com/dntzhang/qone 缘由 最近刚好修改了腾讯文档 Excel ...
- Oracle trunc()函数的用法及四舍五入 round函数
--Oracle trunc()函数的用法/**************日期********************/1.select trunc(sysdate) from dual --2011 ...
- Vue.js + Webpack
vue.js Vue.js是一个构建数据驱动的 web 界面的库.Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件 以上是Vue.js官方定义,故名思议,以数据驱动视 ...