【1】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/ksh
#################################################################################
# 程序名 : update.sh #
# 功能简介: 本程序完成WINV200R002M1D039P2升级 #
# 作者 : *************** #
# 开发时间: ******** #
# #
# 函数说明: 函数定义 #
# CheckBackupDir() 检查备分目录,不完毕则创建 #
# CheckDbinstallDir() 检查SMP的数据库安装脚本目录 #
# CheckIfUpgraded() 检查是否已经升级 #
# UpdateSMPDir() 升级SMP的目录结构 #
# BackupDb() 备分数据库的脚本、数据 #
# BackupFile() 备分SMP目录的文件 #
# UpdateDb() 升级数据库 #
# UpdateFile() 升级文件 #
# #
# 修改历史: First Programming #
# 日期 : #
# 作者 : #
# 修改说明: #
#################################################################################
#应用库函数,要求库函数文件与当前SHELL同一目录
. ./comm_func.sh.rc
#定义变量
#程序名称
ProgName="SMP Platform Upgrade"
#标题
Title="WINV200R002 D039P2"
#目录和文件定义
WorkDir=`pwd`
LogDir=$WorkDir/log
TempDir=$WorkDir/temp
#日志与标志文件
ErrFile=$LogDir/update.err
LogFile=$LogDir/update.log
FlagFile=$LogDir/flag.flg
########################函数定义####################################
####################################################################
# 函数:PrintUsage
# 目的:定义打印用法函数。
# 输入:
# 输出:屏幕
####################################################################
PrintUsage()
{
echo "***************************************************************"
echo " NAME : ${ProgName} "
echo " VERSION : ${Title} "
echo " SYSTEM : WIN SMP "
echo " DESC : SMP platform or service upgrade "
echo " NOTICE : "
echo " COPYRIGHT : 2002, HUAWEI Tech. Co. Ltd. "
echo "***************************************************************"
echo " 1. Execute backup operation"
echo " 2. Execute upgrade operation"
echo " 3. Execute rollback operation"
echo " 0. Exit"
echo "Please input operation choice [0-3]:"
}
…
########### Main ##############
…
exit 0
##################### END OF PROCEDURE ###############