shell学习笔记(三):使用shell脚本打包软件程序

2024-06-22 16:48

本文主要是介绍shell学习笔记(三):使用shell脚本打包软件程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  在项目开发过程中,我们常常需要在脱离源码的情况下,去运行程序,进行相关测试。所以就需要对程序打包,并使用svn号进行管理这些打包的程序,便于后续去追溯版本。
  对于小公司,可以简单的使用shell脚本,将程序和资源文件压缩到文件中,并带有svn版本的的命名,来进行维护。最近就写了一个简单的脚本来做这个工作,这里记录一些关键的地方,方便后续查阅。

查看svn版本号:

svnversion -c |sed ‘s/^.* : //’ |sed ‘s/[A-Z]*$//’

  这里会打印出响应的svn版本号如:2221

查询目录或文件是否存在

1. 查询目录是否存在

if [ ! -d “$product_dir” ]

2. 查询可执行文件是否存在

if [ ! -x “$src_file” ]

3. 一些查询命令选项

-e 表示文件名
-d 表示目录
-f 表示常规文件
-L 表示符号链接
-r 表示可读
-w 表示可写
-x 表示可执行
-s 表示文件长度不为0
-h f表示文件是软链接

字符串拼接

  例如:

dst_file_dir=$cur_path"/product/"

  变量后面直接跟响应的字符串即可

获取命令执行后的结果

  例如我要获取svn的版本号,并赋值给一个变量:

svn_version= ( s v n v e r s i o n − c ∣ s e d ′ s / . ∗ : / / ′ ∣ s e d ′ s / [ A − Z ] ∗ (svnversion -c |sed 's/^.*://' |sed 's/[A-Z]* (svnversioncseds/.://seds/[AZ]//’)

  即使用$()就可以了。

压缩和解压tar.gz文件

  压缩文件夹:

tar zcvf dst_name src_name

  解压文件

tar zxvf dst_name.tar.gz

这篇关于shell学习笔记(三):使用shell脚本打包软件程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1084857

相关文章

Pydantic中Optional 和Union类型的使用

《Pydantic中Optional和Union类型的使用》本文主要介绍了Pydantic中Optional和Union类型的使用,这两者在处理可选字段和多类型字段时尤为重要,文中通过示例代码介绍的... 目录简介Optional 类型Union 类型Optional 和 Union 的组合总结简介Pyd

Vue3使用router,params传参为空问题

《Vue3使用router,params传参为空问题》:本文主要介绍Vue3使用router,params传参为空问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录vue3使用China编程router,params传参为空1.使用query方式传参2.使用 Histo

使用Python自建轻量级的HTTP调试工具

《使用Python自建轻量级的HTTP调试工具》这篇文章主要为大家详细介绍了如何使用Python自建一个轻量级的HTTP调试工具,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录一、为什么需要自建工具二、核心功能设计三、技术选型四、分步实现五、进阶优化技巧六、使用示例七、性能对比八、扩展方向建

使用Python实现一键隐藏屏幕并锁定输入

《使用Python实现一键隐藏屏幕并锁定输入》本文主要介绍了使用Python编写一个一键隐藏屏幕并锁定输入的黑科技程序,能够在指定热键触发后立即遮挡屏幕,并禁止一切键盘鼠标输入,这样就再也不用担心自己... 目录1. 概述2. 功能亮点3.代码实现4.使用方法5. 展示效果6. 代码优化与拓展7. 总结1.

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Linux中的计划任务(crontab)使用方式

《Linux中的计划任务(crontab)使用方式》:本文主要介绍Linux中的计划任务(crontab)使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言1、linux的起源与发展2、什么是计划任务(crontab)二、crontab基础1、cro

kotlin中const 和val的区别及使用场景分析

《kotlin中const和val的区别及使用场景分析》在Kotlin中,const和val都是用来声明常量的,但它们的使用场景和功能有所不同,下面给大家介绍kotlin中const和val的区别,... 目录kotlin中const 和val的区别1. val:2. const:二 代码示例1 Java

C++变换迭代器使用方法小结

《C++变换迭代器使用方法小结》本文主要介绍了C++变换迭代器使用方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、源码2、代码解析代码解析:transform_iterator1. transform_iterat

C++中std::distance使用方法示例

《C++中std::distance使用方法示例》std::distance是C++标准库中的一个函数,用于计算两个迭代器之间的距离,本文主要介绍了C++中std::distance使用方法示例,具... 目录语法使用方式解释示例输出:其他说明:总结std::distance&n编程bsp;是 C++ 标准

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片