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

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

为了方便我日常工作中的编译环境,免去我敲命令行所浪费的时间,我个人写了一个非常有用而又简单的脚本框架,该框架即可以完成的工程源码编译,也可以清除,拷贝等等操作,具体需要开发者自己来实现细节,我的框架思路就是用到了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


目录
相关文章
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
778 3
Linux系统初始化脚本
|
8月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
712 9
|
8月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
729 2
|
10月前
|
Web App开发 缓存 安全
Linux一键清理系统垃圾:释放30GB空间的Shell脚本实战​
这篇博客介绍了一个实用的Linux系统盘清理脚本,主要功能包括: 安全权限检查和旧内核清理,保留当前使用内核 7天以上日志文件清理和系统日志压缩 浏览器缓存(Chrome/Firefox)、APT缓存、临时文件清理 智能清理Snap旧版本和Docker无用数据 提供磁盘空间使用前后对比和大文件查找功能 脚本采用交互式设计确保安全性,适合定期维护开发环境、服务器和个人电脑。文章详细解析了脚本的关键功能代码,并给出了使用建议。完整脚本已开源,用户可根据需求自定义调整清理策略。
1142 1
|
12月前
|
Java Linux
自定义linux脚本用于快速jar包启动、停止、重启
自定义linux脚本用于快速jar包启动、停止、重启
456 29
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
1765 25
|
安全 Linux
阿里云linux服务器使用脚本通过安全组屏蔽异常海外访问ip
公网网站可能会遭受黑客攻击导致访问异常,使用此脚本可以屏蔽掉异常IP 恢复访问。也可自行设置定时任务定期检测屏蔽。
848 28
|
12月前
|
Linux Shell
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
343 4
|
12月前
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
605 3
|
Shell Linux
【linux】Shell脚本中basename和dirname的详细用法教程
本文详细介绍了Linux Shell脚本中 `basename`和 `dirname`命令的用法,包括去除路径信息、去除后缀、批量处理文件名和路径等。同时,通过文件备份和日志文件分离的实践应用,展示了这两个命令在实际脚本中的应用场景。希望本文能帮助您更好地理解和应用 `basename`和 `dirname`命令,提高Shell脚本编写的效率和灵活性。
1339 32