又见101个shell脚本
2011-10-30 22:43
232 查看
很久没更新了,很久没看脚本了
想想应该继续看脚本了
有时侯选项中还带一个值,getopts命令同样也支持这一功能。这时需要在option_string中选项字母后加一个冒号。当getopts命令发现冒号后,会从命令行该选项后读取该值。若该值存在,那么将被存在一个特殊的变量OPTARG中。如果该值不存在,getopts命令将在OPTARG中存放一个问号,并且在标准错误输出上显示一条消息。
varname 每次匹配成功的选项
arg
参数列表,没写时它会取命令行参数列表
$OPTIND 特殊变量,option index,会逐个递增, 初始值为1
$OPTARG 特殊变量,option
argument,不同情况下有不同的值
------------shift 用于重新分配位置参数,其实就是把向参数左移动一个位置如:$1<--$2,$2<--$3老的$1将被删 除掉。
------------
脚本解释
shift $(($OPTIND - 1))
会使$@变为最后一个参数,即为文件名。${width:-72},${hyph:-0} 用来定义默认值的。
nroff现在很少用了,查资料发现是用来将文本文件格式化为行式打印机或终端屏幕所需要的形式。
感觉这脚本的用处不是很大,linux有现成的命令可以来完成这个功能
他就是fmt。
想想应该继续看脚本了
#14 Formatting Long Lines
#!/bin/sh # A version of fmt, using nroff. Adds two useful flags: -w X for line width # and -h to enable hyphenation for better fills. while getopts "hw:" opt; do case $opt in h) hyph=1 ;; w) width="$OPTARG" ;; esac done shift $(($OPTIND - 1)) nroff << EOF .ll ${width:-72} .na .hy ${hyph:-0} .pl 1 $(cat "$@") EOF exit 0 ------------ 上面脚本是用来格式化输出软件的 主要用到了 getopts 来获得处理参数 我们的命令行下的统一格式为 : command -options parameters getopts语句。该语句的格式为: getopts option_string variable 其中option_string中包含一个有效的单字符选项。若getopts命令在命令行中发现了连字符, 那么它将用连字符后面的字符同option_string相比较。若有匹配,则把变量variable的值设为该选项。 若无匹配,则variable设为?。当getopts发现连字符后面没有字符,会返回一个非零的状态值。 Shell程序中可以利用getopts的返回值建立一个循环。
有时侯选项中还带一个值,getopts命令同样也支持这一功能。这时需要在option_string中选项字母后加一个冒号。当getopts命令发现冒号后,会从命令行该选项后读取该值。若该值存在,那么将被存在一个特殊的变量OPTARG中。如果该值不存在,getopts命令将在OPTARG中存放一个问号,并且在标准错误输出上显示一条消息。
------------optstring option字符串,会逐个匹配
varname 每次匹配成功的选项
arg
参数列表,没写时它会取命令行参数列表
$OPTIND 特殊变量,option index,会逐个递增, 初始值为1
$OPTARG 特殊变量,option
argument,不同情况下有不同的值
------------shift 用于重新分配位置参数,其实就是把向参数左移动一个位置如:$1<--$2,$2<--$3老的$1将被删 除掉。
------------
脚本解释
shift $(($OPTIND - 1))
会使$@变为最后一个参数,即为文件名。${width:-72},${hyph:-0} 用来定义默认值的。
nroff现在很少用了,查资料发现是用来将文本文件格式化为行式打印机或终端屏幕所需要的形式。
感觉这脚本的用处不是很大,linux有现成的命令可以来完成这个功能
他就是fmt。
相关文章推荐
- 读书笔记--101个shell脚本 之#12--函数
- 读书笔记--101个shell脚本--05
- 读书笔记--101个shell脚本 之#13--猜数字
- 101个shell脚本 猜数字游戏代码
- 读书笔记--101个shell脚本 之#10
- 读书笔记--101个shell脚本 之#11--炫
- 101个shell脚本 猜数字游戏代码
- 101个shell脚本之002
- 读书笔记--101个shell脚本 之#9
- 遍历文件夹并批量tar压缩的Shell脚本
- shell mysql服务状态检查脚本示例
- shell脚本备份MYSQL数据库
- 使用shell分页读取600万+的MySQL数据脚本
- mongodb shell 运行js脚本的四种方式
- report xml文件同步shell脚本
- shell脚本简单切割字符串
- 使用shell分页读取600万+的MySQL数据脚本
- shell-脚本安装第三方库
- shell脚本根据某一列去重
- sync问题导致shell脚本执行失败