在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的步骤如下 ...
随机推荐
- [SDOI2008]Sandy的卡片
题目描述 Sandy和Sue的热衷于收集干脆面中的卡片. 然而,Sue收集卡片是因为卡片上漂亮的人物形象,而Sandy则是为了积攒卡片兑换超炫的人物模型. 每一张卡片都由一些数字进行标记,第i张卡片的 ...
- ●UOJ 21 缩进优化
题链: http://uoj.ac/problem/21 题解: ...技巧题吧 先看看题目让求什么: 令$F(x)=\sum_{i=1}^{n}(\lfloor a[i]/x \rfloor +a[ ...
- BZOJ4870: [Shoi2017]组合数问题
4870: [Shoi2017]组合数问题 Description Input 第一行有四个整数 n, p, k, r,所有整数含义见问题描述. 1 ≤ n ≤ 10^9, 0 ≤ r < k ...
- 【poj 1087 a plug for UNIX】
在大米饼的帮助下,终于找到了大米饼程序中如同大米饼一般的错误! 考点在问题转化,然后就跑一个你喜欢的最大流算法(二分图可以啵?) 再来一个例子吧: [纯手绘大米饼图片] 其中有的边权是1,否则就是in ...
- bzoj2442[Usaco2011 Open]修剪草坪 单调队列优化dp
2442: [Usaco2011 Open]修剪草坪 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1159 Solved: 593[Submit] ...
- (ubuntu)linux C编程之sleep()和usleep()的使用和区别
### 函数名: sleep 头文件: #include <windows.h> // 在VC中使用带上头文件 #include <unistd.h> // 在gcc编译器中, ...
- SpringBoot跨域问题解决方案
一.允许全部请求跨域许可的代码: 需要继承WebMvcConfigurerAdapter类 @Configuration public class MyWebAppConfigurer extends ...
- SQL Server 2008 维护计划实现数据库备份(最佳实践)
一.背景 之前写过一篇关于备份的文章:SQL Server 维护计划实现数据库备份,上面文章使用完整备份和差异备份基本上能解决数据库备份的问题,但是为了保障数据更加安全,我们需要再次完善我们的备份计划 ...
- IntelliJ IDEA光标变粗 backspace无法删除内容解决方法
进入了vim插件 1.ctrl+alt+s快捷键打开Settings 2.选择左侧列表中的Plugins 3.在右侧面板的搜索框中搜索IdeaVim 4.将复选框中的钩子去掉 backspace成了其 ...
- C# IE浏览器
引用Microsoft HTML Object Library 引用 -> com -> Microsoft HTML Object Library 引用后,显示如图 1.判断ie浏览器是 ...