刚在外面遛弯,迎面来了一姑娘对我说:“能借你肩膀一用吗?”我一愣,心想这姑娘可能受什么委屈了想借个肩膀靠靠哭哭,就说“好啊…”刚说完,姑娘一把把我拉到墙边,踩着我肩膀腾一下翻过墙去了,墙那边传来她的声音“谢拉,走小区门口太远啦”……
规定一个范式,有利于统一程序风格,增加可读性。对于编写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升级 #
#作者 : zhongwei/20150 #
#开发时间:2002-05-05 #
# #
#函数说明: 函数定义 #
# 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 ###############
零测试