在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的步骤如下 ...
随机推荐
- [HNOI2011]数矩形
题目描述 最近某歌手在研究自己的全球巡回演出计划,他将所有心仪的城市都用平面上的一个点来表示,并打算从中挑选出 4 个城市作为这次巡回演出的地点. 为了显示自己与众不同,他要求存在一个矩形使得挑选出的 ...
- [SHOI2008]堵塞的交通
Description 有一天,由于某种穿越现象作用,你来到了传说中的小人国.小人国的布局非常奇特,整个国家的交通系统可 以被看成是一个2行C列的矩形网格,网格上的每个点代表一个城市,相邻的城市之间有 ...
- [HNOI2015]实验比较
Description 小D 被邀请到实验室,做一个跟图片质量评价相关的主观实验.实验用到的图片集一共有 N 张图片,编号为 1 到 N.实验分若干轮进行,在每轮实验中,小 D会被要求观看某两张随机选 ...
- Cisco 关闭命令同步提示信息
Router(config)#no logging console 如果你通过console连接,使用第一条Router(config)#no logging monitor 如果通过telnet,s ...
- 三种方法,刷新 Android 的 MediaStore!让你保存的图片立即出现在相册里!
公众号原标题:测试:"系统相册里怎么看不到我刚保存的图片,是我操作不对吗?" 一.序 Hi,大家好,我是承香墨影! App 内,创建一个文件并保存文件到本地的需求,是很常见的 I/ ...
- Dynamic Web Module 3.0 requires Java 1.6 or newer.的解决
在项目的pom.xml增加 <build> <finalName>xxxxxxxx</finalName> <plugins> <plugin&g ...
- JNI 方法注册与签名+BufferedReader使用readLine问题
最近了解了关于JavaJNI接口的一些关于方法注册与签名相关的知识,在此进行一下总结. 使用JNI接口时,我们首先需要把Java方法声明为native: public native void f(); ...
- ConcurrentHashMap1.7和1.8的不同实现
ConcurrentHashMap 在多线程环境下,使用HashMap进行put操作时存在丢失数据的情况,为了避免这种bug的隐患,强烈建议使用ConcurrentHashMap代替HashMap,为 ...
- JAVA局部内部类
在刚刚学到的android开发中了解到Button的onClick是通过局部内部类的方式实现的,具体的原理我以后再去了解,只是遇到问题总是想知道为什么,不要告诉我这是规则,死记住就可以了. 问题是局部 ...
- solr服务器搭建
百度百科定义:Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引:也可以通过Ht ...