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范式的更多相关文章

  1. Linux入门篇(六)——Shell(二)

    这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...

  2. 【Shell编程】Shell程序设计

    1.Shell简介   作为Linux灵感来源的Unix系统最初是没有图形化界面的,所有的任务都是通过命令行来实现的.因此,Unix的命令行系统得到了很大的发展,逐步成为一个功能强大的系统.   Sh ...

  3. Linux shell编程02 shell程序的执行 及文件权限

    第一个shell脚本 1.       shell编程的方式 交互式shell编程 非交互式shell编程:执行的语句存放到一个文件 shell脚本:可以任意文件名,建议扩展名为sh 2.       ...

  4. Linux入门篇(五)——Shell(一)

    这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...

  5. shell编程01—shell基础

    01.学习shell编程需要的知识储备 1.vi.vim编辑器的命令,vimrc设置 2.命令基础,100多个命令 3.基础.高端的网络服务,nfs,rsync,inotify,lanmp,sersy ...

  6. Linux shell编程 4 ---- shell中的循环

    1 for循环 1 for语句的结构 for variable in values; do statement done 2 for循环通常是用来处理一组值,这组值可以是任意的字符串的集合 3 for ...

  7. Linux基础篇二:Bash shell(壳,命令解释器)介绍

    shell执行方式: 第一:输入命令  (简单工作) 第二:   脚本  (适合大量工作) Bash shell 实际上的叫法是  GNU/Bash    如何查询呢:  bash - version ...

  8. 【Shell编程】Shell基本语法

    Shell 语法   Shell程序设计作为一种脚本语言,在Linux系统中有广泛的应用,本文记录了关于Shell程序设计的基础语法知识和常用命令,方便查询,熟练使用shell也需要经常实践,这对于完 ...

  9. shell编程===执行shell脚本的四种方法

    使用vim创建一个shell文件,命名 hello.sh #!/bin/bash echo "hello shell !" 在linux中进行加载 chmod +x ./hello ...

  10. 【shell】shell编程(六)-shell函数的应用

    linux shell 可以用户定义函数,然后在shell脚本中可以随便调用. shell中函数的定义格式如下: [ function ] funname [()] { action; [return ...

随机推荐

  1. 力扣485(java)-最大连续数1的个数(简单)

    题目: 给定一个二进制数组, 计算其中最大连续 1 的个数. 示例: 输入:[1,1,0,1,1,1]输出:3解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3. 提示: 输入 ...

  2. 十年再出发,Dubbo 3.0 Preview 即将在 3 月发布

    ​简介:随着Dubbo和HSF的整合,我们在整个开源的体系中更多地去展现了 HSF 的能力,能够让更多的人通过使用 Dubbo 像阿里巴巴之前使用 HSF 一样更好的构建服务化的系统. 2011 年, ...

  3. [FAQ] Git 修改最后一次的提交人和提交时间 ?

    $ date -R Tue, 21 Mar 2021 21:08:58 +0800 $ git commit --amend  --author="xxx <xxx@email.com ...

  4. dotnet C# 通过 Vortice 使用 Direct2D 的 ID2D1CommandList 入门

    本文将告诉大家如何通过 Vortice 使用 D2D 的 CommandList 功能 本文属于 DirectX 系列博客,更多 DirectX 和 D2D 以及 Vortice 库的博客,请参阅我的 ...

  5. 高性能消息中间件-Nats使用

    一.Nats简介 官网:https://nats.io/ 官网下载:https://nats.io/download/ github:https://github.com/nats-io/nats-s ...

  6. 最强AI直播换脸软件,DeepFaceLive下载介绍

    DeepFaceLive是一款专注于直播实时换脸的AI软件,使用经过长时间训练的人脸模型替换摄像头中的人脸,能够产生接近电影质量的面部合成效果,提供高保真的视觉体验,在新版本中也支持了图片换脸(视频换 ...

  7. ADV7123驱动VGA显示色条

    VGA显示色条-基于ADV7123 用ADV7123代替权电阻网络,执行数模转换,差别在于rgb都变成8位,显示的色彩更多.控制端口多了3个:像素时钟,复合同步信号(不用就置0),消隐信号. 相对权电 ...

  8. js原型,原型链(不断补充中)

    1.如何使用构造器? function Person(name, age) { this.name = name; this.age = age; } var man = new Person(&qu ...

  9. 如何在M1 MACBOOK上准备好ORB-SLAM2的环境

    1. 环境 M1 Macbook Air Parallels Desktop 17 关于虚拟机,在之前尝试了UTM,但是性能欠佳,卡顿情况比较多,而且未能解决联网问题,最终只能含泪放弃 Paralle ...

  10. 【OpenVINO™】使用OpenVINO™ C# API 部署 YOLO-World实现实时开放词汇对象检测

    YOLO-World是一个融合了实时目标检测与增强现实(AR)技术的创新平台,旨在将现实世界与数字世界无缝对接.该平台以YOLO(You Only Look Once)算法为核心,实现了对视频中物体的 ...