知识大全 两个很详细的shell 实例代码

Posted 文件

篇首语:人生必须的知识就是引人向光明方面的明灯。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 两个很详细的shell 实例代码相关的知识,希望对你有一定的参考价值。

两个很详细的shell 实例 一般编程步骤   现在我们来讨论编写一个脚本的一般步骤 任何优秀的脚本都应该具有帮助和输入参数 并且写一个伪脚本(framework sh) 该脚本包含了大多数脚本都需要的框架结构 是一个非常不错的主意 这时候 在写一个新的脚本时我们只需要执行一下copy命令 cp framework sh myscript   然后再插入自己的函数   让我们再看两个例子   二进制到十进制的转换   脚本 b d 将二进制数 (比如 ) 转换为相应的十进制数 这也是一个用expr命令进行数学运算的例子

  复制代码 代码如下:

  #!/bin/sh # vim: set sw= ts= et: help()  cat < b h convert binary to decimal USAGE: b h [ h] binarynum OPTIONS: h help text EXAMPLE: b h will return HELP  exit error()   # print an error and exit   echo $   exit lastchar()   # return the last character of a string in $rval   if [ z $ ]; then     # empty string     rval=     return   fi   # wc puts some space behind the output this is why we need sed:   numofchar=`echo n $ | wc c | sed s/ //g `   # now cut out the last char   rval=`echo n $ | cut b $numofchar` chop()   # remove the last character in string and return it in $rval   if [ z $ ]; then     # empty string     rval=     return   fi   # wc puts some space behind the output this is why we need sed:   numofchar=`echo n $ | wc c | sed s/ //g `   if [ $numofchar = ]; then     # only one char in string     rval=     return   fi   numofcharminus =`expr $numofchar `   # now cut all but the last char:   rval=`echo n $ | cut b $numofcharminus ` while [ n $ ]; do case $ in    h) help;shift ;; # function help is called    ) shift;break;; # end of options    *) error error: no such option $ h for help ;;   *) break;; esac done # The main program sum= weight= # one arg must be given: [ z $ ] && help binnum= $ binnumorig= $ while [ n $binnum ]; do   lastchar $binnum   if [ $rval = ]; then     sum=`expr $weight + $sum `   fi   # remove the last position in $binnum   chop $binnum   binnum= $rval   weight=`expr $weight * ` done echo binary $binnumorig is decimal $sum #

  该脚本使用的算法是利用十进制和二进制数权值 ( ) 比如二进制 可以这样转换成十进制 * + * =   为了得到单个的二进制数我们是用了lastchar 函数 该函数使用wc ?c计算字符个数 然后使用cut命令取出末尾一个字符 Chop函数的功能则是移除最后一个字符   文件循环程序   或许您是想将所有发出的邮件保存到一个文件中的人们中的一员 但是在过了几个月以后 这个文件可能会变得很大以至于使对该文件的访问速度变慢 下面的脚本rotatefile 可以解决这个问题 这个脚本可以重命名邮件保存文件(假设为outmail)为outmail 而对于outmail 就变成了outmail 等等等等

  复制代码 代码如下:

  这个脚本是如何工作的呢?在检测用户提供了一个文件名以后 我们进行一个Array到 的循环 文件Array被命名为 文件 重命名为Array等等 循环完成之后 我们将原始文件命名为文件 同时建立一个与原始文件同名的空文件 调试   最简单的调试命令当然是使用echo命令 您可以使用echo在任何怀疑出错的地方打印任何变量值 这也是绝大多数的shell程序员要花费 %的时间来调试程序的原因 Shell程序的好处在于不需要重新编译 插入一个echo命令也不需要多少时间   shell也有一个真实的调试模式 如果在脚本 strangescript 中有错误 您可以这样来进行调试 sh x strangescript   这将执行该脚本并显示所有变量的值   shell还有一个不需要执行脚本只是检查语法的模式 可以这样使用 sh n your_script   这将返回所有语法错误   我们希望您现在可以开始写您自己的shell脚本 希望您玩得开心 cha138/Article/program/yxkf/201404/30420

相关参考

知识大全 批量实现面向对象的实例代码

本文为大家详细介绍下面向对象的继承以及如何实现批量实现面向对象感兴趣的可以参考下哈希望对大家有所帮助 复制代码代码如下:cha138/Article/program/Java/JS

知识大全 asp添加数据代码

  这是一款简单的asp教程添加数据代码程序接受用户提交过来的数据再保存到数据库教程中很方便等的哦下面来看个详细的说明实例吧  举例如在字段名处输入:usernamepasswordemailtelp

知识大全 shell grep 查找进程的小技巧

大部分人在写Shell过滤进程的时候都会使用grep在psaux的输出结果中查找指定的进程但此时也会把grep进程也显示出来比如查找pptpd进程会匹配出来两条  复制代码代码如下:  [root@s

知识大全 oracle中怎样从sql*plus向shell传递变量

很多人在实际的工作和学习中都遇到了无法通过sqlplus向shell传递变量下面我们来介绍一个实例脚本来进行折中处理  >  下面我们再来介绍另一个实例方法  >>>cha138/Artic

知识大全 详细介绍SQL交叉表的实例

详细介绍SQL交叉表的实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  很简单的一个东西见网上

知识大全 详细解析网页漂浮广告代码的含义

  网页漂浮广图片特效这种特效我们总是很喜欢鼠标指向图片后图片停止移动cha138/Article/program/Java/Javascript/201311/25462

知识大全 gridpanel动态加载数据的实例代码

这篇文章介绍了gridpanel动态加载数据的实例代码有需要的朋友可以参考一下 复制代码代码如下:cha138/Article/program/Java/JSP/201311/20

知识大全 实例代码解析

Javamail操作指南:实例代码解析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  怎样才算比

知识大全 asp.net 数据绑定的实例代码

这篇文章介绍了aspnet数据绑定的实例代码有需要的朋友可以参考一下 复制代码代码如下:cha138/Article/program/net/201311/14140

知识大全 PHP采集代码实例

PHP采集代码实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!cha138/Artic