Linux扩展篇-shell编程(十)-shell范式
shell编程提供一个范式,有利于统一程序风格,增加可读性。
范式:
ASSIGN SHELL/指定壳
DESCRIPTION/程序说明
BODY/程序体
扩展:
1、ASSIGN SHELL/指定壳,如果不指定壳,默认使用Bourne SHELL,建议使用KSH
#!SHELL路径
1.1 CSH
#!/bin/csh
1.2 BSH
#!/bin/sh
1.3 KSH
#!/bin/ksh
2、DESCRIPTION/程序说明
#PROCEDURE NAME/程序名称
#PROCEDURE FUNCTION/程序功能说明
#AUTHOR/作者
#DATE/开发时间
#INPUT/输入
#OUTPUT/输出
#CALL/调用函数说明
#HISTORY/变更历史
3、BODY/程序体
INCLUDE LIBRARY /包含库文件
VARIABLE DEFINE/变量定义
FUNCTION DEFINE/函数定义
MAIN/程序入口
3.1 INCLUDE LIBRARY /包含库文件
. LIBRARY FILE/库文件名称
3.2 FUNCTION DEFINE/函数定义
#FUNCRION: FUNCTION NAME
#DESC : FUNCTION DESC
#INPUT : INPUT DESC
#OUTPUT : OUTPUT DESC
FUNCTION() {
}
3.3 MAIN/程序入口(建议为)
程序启动说明
程序执行步骤
程序结束
exit 0
范式样例:
#!/bin/bash
#############################################
# 程序名:test.sh
# 功能简介:本程序用于测试
# 作者:cavan
# 日期:2023/3/20
# 函数说明:
# CheckBackupDir() 检查备分目录,不完毕则创建
# CheckIfUpgraded() 检查是否已经升级
# BackupDb() 备分数据库的脚本、数据
# 修改说明:
#############################################
# 应用库函数,要求库函数文件与当前SHELL同一目录
. ./comm_func.sh.rc
# 定义变量
ProName="test"
# 标题
Title=""
# 目录和文件定义
WorkDir=$(pwd)
LogDir=$WorkDir/log
TempDir=$WorkDir/temp
#日志与标志文件
LogDir=$(pwd)
ErrFile=$LogDir/update.err
LogFile=$LogDir/update.log
FlagFile=$LogDir/flag.flg
########################函数定义#####################################
####################################################################
#CheckBackupDir
#目的:检查备分目录,不完毕则创建。
#输入:
#输出:屏幕
####################################################################
function CheckBackupDir() {
}
########### Main ##############
exit 0
##################### END OF PROCEDURE ###############
参考
http://www.51testing.com/html/92/450992-831606.html
https://blog.csdn.net/yangzai187/article/details/8671947
Linux扩展篇-shell编程(十)-shell范式的更多相关文章
- Linux入门篇(六)——Shell(二)
这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...
- 【Shell编程】Shell程序设计
1.Shell简介 作为Linux灵感来源的Unix系统最初是没有图形化界面的,所有的任务都是通过命令行来实现的.因此,Unix的命令行系统得到了很大的发展,逐步成为一个功能强大的系统. Sh ...
- Linux shell编程02 shell程序的执行 及文件权限
第一个shell脚本 1. shell编程的方式 交互式shell编程 非交互式shell编程:执行的语句存放到一个文件 shell脚本:可以任意文件名,建议扩展名为sh 2. ...
- Linux入门篇(五)——Shell(一)
这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...
- shell编程01—shell基础
01.学习shell编程需要的知识储备 1.vi.vim编辑器的命令,vimrc设置 2.命令基础,100多个命令 3.基础.高端的网络服务,nfs,rsync,inotify,lanmp,sersy ...
- Linux shell编程 4 ---- shell中的循环
1 for循环 1 for语句的结构 for variable in values; do statement done 2 for循环通常是用来处理一组值,这组值可以是任意的字符串的集合 3 for ...
- Linux基础篇二:Bash shell(壳,命令解释器)介绍
shell执行方式: 第一:输入命令 (简单工作) 第二: 脚本 (适合大量工作) Bash shell 实际上的叫法是 GNU/Bash 如何查询呢: bash - version ...
- 【Shell编程】Shell基本语法
Shell 语法 Shell程序设计作为一种脚本语言,在Linux系统中有广泛的应用,本文记录了关于Shell程序设计的基础语法知识和常用命令,方便查询,熟练使用shell也需要经常实践,这对于完 ...
- shell编程===执行shell脚本的四种方法
使用vim创建一个shell文件,命名 hello.sh #!/bin/bash echo "hello shell !" 在linux中进行加载 chmod +x ./hello ...
- 【shell】shell编程(六)-shell函数的应用
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用. shell中函数的定义格式如下: [ function ] funname [()] { action; [return ...
随机推荐
- 力扣467(java)-环绕字符串中唯一的子字符串(中等)
题目: 把字符串 s 看作是 "abcdefghijklmnopqrstuvwxyz" 的无限环绕字符串,所以 s 看起来是这样的: "...zabcdefghijklm ...
- 力扣28(java)-实现 strStr()(简单)
题目: 实现 strStr() 函数. 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始).如果不存 ...
- opensips开启python支持
操作系统 :CentOS 7.6_x64 opensips版本: 2.4.9 python版本:2.7.5 python作为脚本语言,使用起来很方便,查了下opensips的文档,支持使用py ...
- 聊聊日志硬扫描,阿里 Log Scan 的设计与实践
简介: SLS 新推出 Scan 功能,让未索引的字段也支持搜索(硬扫描模式),节省全量索引产生的构建和存储费用,同时 Scan 的运行时计算模式对于杂乱结构的日志数据有更好的适配,帮助企业客户实现数 ...
- 如何可视化编写和编排你的 K8s 任务
简介: 通过任务调度 SchedulerX 来调度你的 K8s 任务,能够降低学习成本,加快开发效率,让你的任务失败可报警,出问题可排查,打造云原生可观测体系下的可视化 K8s 任务. 作者:学仁 ...
- EasyNLP中文文图生成模型带你秒变艺术家
简介: 我们在EasyNLP框架中集成了中文文图生成功能,同时开放了模型的Checkpoint. 导读 宣物莫大于言,存形莫善于画. --[晋]陆机 多模态数据(文本.图像.声音)是人类认识.理解和表 ...
- 以“升舱”之名,谈谈云原生数据仓库AnalyticDB的核心技术
简介: 企业级云原生数据仓库AnalyticDB提出了升舱计划,旨在承担和帮助金融.运营商.政务等行业构建下一代数据管理和分析系统,以应对不断增长的数据规模,业务数字化转型,和传统数仓替换升级需求.7 ...
- SpringCloud 应用在 Kubernetes 上的最佳实践 —— 高可用(弹性伸缩)
作者 | 三未 前言 弹性伸缩是一种为了满足业务需求.保证服务质量.平衡服务成本的重要应用管理策略.弹性伸缩让应用的部署规模能够根据实时的业务量产生动态调整,在业务高峰期扩大部署规模,保证服务不被业务 ...
- 自己动手写符合自己业务需求的eslint规则
简介:eslint是构建在AST Parser基础上的规则扫描器,缺省情况下使用espree作为AST解析器.rules写好对于AST事件的回调,linter处理源代码之后会根据相应的事件来回调ru ...
- [Contract] Solidity 多种访问控制 (Access Control) 实现方式
在 solidity 中控制访问,一般是通过 modifier 修饰符方法来直接做. 那么对于稍复杂的多种访问控制,通常需要一个统一操作的模块化类库. 现在已经有了这样的类库存在,我们通过一个实现功能 ...