沈阳电脑维修网,沈阳上门维修电脑服务
当前位置: 主页 > 程序数据代码>脚本编程风格_程序数据_shell >

脚本编程风格_程序数据_shell

时间:2011-12-5来源:沈阳电脑维修网 作者: 吕先生:13889116605点击:
沈阳电脑维修,上门维修电脑
      写脚本时养成结构化和系统方法的习惯.即使你在信封背后随便做一下草稿也是有益的,要养成在写代码前花几分钟来规划和组织你的想法.这儿是一些风格的指南.注意这节文档不是想成为一个官方Shell编程风格.1.非官方的Shell脚本风格注释你的代码.这会使你的代码更容易让别人理解和赏识,同时也便于你维护.    1PASS="$PASS${MATRIX:$(($RANDOM%${#MATRIX})):1}"  2#当你去年写下这句代码时非常的了解它在干什么事,但现在它完全是一个谜.  3#(摘自AntekSawicki的"pw.sh"脚本.) 给脚本和函数加上描述性的头部信息.     1#!/bin/bash  2  3#************************************************#  4#                  xyz.sh                      #  5#          writtenbyBozoBozeman             #  6#               July05,2001                  #  7#                                               #  8#                  清除项目文件.               #  9#************************************************# 10 11E_BADDIR=65                      #没有那样的目录. 12projectdir=/home/bozo/projects   #要清除的目录. 13 14#---------------------------------------------------------# 15#cleanup_pfiles()                                        # 16#删除指定目录里的所有文件.                                # 17#参数:$target_directory                                  # 18#返回:成功返回0,失败返回$E_BADDIR值.                   # 19#---------------------------------------------------------# 20cleanup_pfiles() 21{ 22  if[!-d"$1"] #测试目标目录是否存在. 23  then 24    echo"$1isnotadirectory." 25    return$E_BADDIR 26  fi 27 28  rm-f"$1"/* 29  return0  #成功. 30}  31 32cleanup_pfiles$projectdir 33 34exit0 确认#!/bin/bash在脚本的第一行,在任何头部注释行之前.避免使用"魔数," 它是硬编码的字符常量.用有意义的变量名来代替.这使脚本更容易理解并允许在不破坏应用的情况下做改变和更新.     1if[-f/var/log/messages]  2then  3  ...  4fi  5#一年以后,你决定让脚本改为检查/var/log/syslog.  6#那么现在就需要你手动修改脚本里每一处的要改动的代码,  7#希望不要有你疏漏的地方.  8  9#更好的办法是: 10LOGFILE=/var/log/messages #只需要改动一行. 11if[-f"$LOGFILE"] 12then 13  ... 14fi 为变量和函数选择描述性的名字.     1fl=`ls-al$dirname`                #含义含糊.  2file_listing=`ls-al$dirname`      #更好的名字.  3  4  5MAXVAL=10  #同一个脚本所有程序代码使用脚本常量.  6while["$index"-le"$MAXVAL"]  7...  8  9 10E_NOTFOUND=75                       # 把错误代码的代表的变量名大写U, 11                                     #+并以"E_"开头. 12if[!-e"$filename"] 13then 14  echo"File$filenamenotfound." 15  exit$E_NOTFOUND 16fi  17 18 19MAIL_DIRECTORY=/var/spool/mail/bozo #环境变量名用大写. 20exportMAIL_DIRECTORY 21 22 23GetAnswer()                        #函数名用适当的大小写混合组成. 24{ 25  prompt=$1 26  echo-n$prompt 27  readanswer 28  return$answer 29}  30 31GetAnswer"Whatisyourfavoritenumber?" 32favorite_number=$? 33echo$favorite_number 34 35 36_uservariable=23                    #语法允许,但不推荐. 37#用户定义的变量最好不要用下划线开头. 38#把这个留给系统变量使用更好. 用有含义和系统的方法来使用退出代码(exitcodes).     1E_WRONG_ARGS=65  2...  3...  4exit$E_WRONG_ARGS 最后建议在脚本中使用/usr/include/sysexits.h的退出码,虽然它们主要由C和C++语言编程时使用.使用标准的参数选项.最后建议使用下面一组参数标志.  1-a     All:Returnallinformation(includinghiddenfileinfo).  2-b     Brief:Shortversion,usuallyforotherscripts.  3-c     Copy,concatenate,etc.  4-d     Daily:Useinformationfromthewholeday,andnotmerely  5        informationforaspecificinstance/user.  6-e     Extended/Elaborate:(oftendoesnotincludehiddenfileinfo).  7-h     Help:Verboseusagew/descs,auxinfo,discussion,help.  8        Seealso-V.  9-l     Logoutputofscript. 10-m     Manual:Launchman-pageforbasecommand. 11-n     Numbers:Numericaldataonly. 12-r     Recursive:Allfilesinadirectory(and/orallsub-dirs). 13-s     Setup&FileMaintenance:Configfilesforthisscript. 14-u     Usage:Listofinvocationflagsforthescript. 15-v     Verbose:Humanreadableoutput,moreorlessformatted. 16-V     Version/License/Copy(right|left)/Contribs(emailtoo). 把复杂的脚本分割成简单一些的模块.用合适的函数来实现各个功能.如果有简单的结构可以使用,不要使用复杂的结构.     1COMMAND  2if[$?-eq0]  3...  4#多余的并且也不直接明了.  5  6ifCOMMAND  7...  8#更简练(或者可能会损失一些可读性).
上一篇:测试和比较: 另一种方法_程序数据_shell
下一篇:shell中的选项_程序数据_shell
查看[脚本编程风格_程序数据_shell ]所有评论
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:
推荐内容
关于我们 服务价格 联系我们 企业网站优化 沈阳网站建设 沈阳维修电脑