• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Formatting Long Lines 格式化多行字符的shell脚本

    很久没更新了,很久没看脚本了
    想想应该继续看脚本了

    #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。

    上一篇:Git 常用命令整理
    下一篇:101个shell脚本 猜数字游戏代码
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Formatting Long Lines 格式化多行字符的shell脚本 Formatting,Long,Lines,格式化,