• shell 脚本专家指南笔记


    1.设置verbose

    在脚本添加 set -x/v

    -x xtrace确认代码是否正确运行

    +x 不再显示verbose

    2.大小写转换

      $test=`echo $test|tr [a-z] [A-Z]`

    3.系统时间使用

    declare -a  DATE=(`date +"%S %M %k %d %m %Y"`)

    或使用 $(date +%Y%m%d) 年月日

           $(date +%H%M%S) 时分秒

           $(date +%s)从1970年以来的秒

    4.根据调试层次控制输出

    debug=2

    test $debug -gt 0 && “A little data”

    test $debug -gt 1 && “some more data”

    test $debug -gt 2 && “even some more data”

    5.ostype()

     或者$OSTYPE

    6.判断是否宕机

    #!/bin/bash

    set -x

    islive()

    {

       node=$1

       ping -n 3 $node >/dev/null>&1

       if [[ $? -eq 1 ]]

       then

       echo "this node is down!"

       else

       echo "this node is ok"

       fi

    }

    调用函数islive localhost

    7.source 命令会执行库文件的赋值

      或者使用 .

    8. shell 参数的传递

      $#参数个数

      $1第一个参数

      $n 第n个参数

      $*所有参数

    9.if 语句

      if [ ]

         then

      else

      fi

     

         与 -a

          或 -o

          非 ! 

    9.比较

         显式字符串比较 “ string1” = ”string2”

         数字比较 等于-qe 大于等于 -ge 小于等于-le 不等于-ne 大于-gt 小于-lt

    10.echo -e 输出转义字符

       echo  -e “ test test ! ” 输出两个tab test test !回车换行

    11. egrep

    12. getopts

       geropts 命令又一系列有效选项激活,它分析确定哪个选项需要的参数。每次激活getopts时,它检查是否还有选项需要处理。如果有,它就获取下一个需要处理的选项(修改OPTIND的值),将其保存在环境变量(ARGS)并返回真,否则返回假。

       while getopts

    13.设置默认值

      test -z  $var && var=”default value ” ( test -z string 为零返回真)

      或者 [ -z ] && var=”default value” (test 等同 [ ] )

      最简洁 [ ! $var ] && var=”default value”

      $var || var=”default value”

      ${var:=”default value”}

      ${ var:”default value”} var没被定义同:=

       

      echo "${username:?$LOGNAME}" 若username未定义或空,则使用  $LOGNAME并退出,并显示脚本所运行的行数

      echo "${username?$LOGNAME}" username没被定义同:?

      ${username:-$LOGNAME} +在username未被或空定义时才使用$LOGNAME

      ${username:+$LOGNAME} +在username被定义时才使用$LOGNAME

     

     

     

    14.grep

    v  参数
    -I :忽略大小写 
    -c :打印匹配的行数 
    -l :从多个文件中查找包含匹配项 
    -v :查找不包含匹配项的行 
    -n:打印包含匹配项的行和行标 

    v   RE(正则表达式) 
    忽略正则表达式中特殊字符的原有含义 
    ^ 匹配正则表达式的开始行 
    $ 匹配正则表达式的结束行 
    < 从匹配正则表达式的行开始 
    > 到匹配正则表达式的行结束 
    [ ] 单个字符;如[A] 即A符合要求 
    [ - ] 范围 ;如[A-Z]即A,B,C一直到Z都符合要求 

  • 相关阅读:
    MongoDB入门
    查看端口通不通
    jQuery通过name获取值
    thinking in java
    xml配置文件解释
    Spring定时器时间设置规则
    修改序列(Sequence)的初始值(START WITH)
    Go语言实现简单的一个静态WEB服务器
    [转载]XML非法字符的处理
    IIS7解决文件上传大小问题
  • 原文地址:https://www.cnblogs.com/sunbeidan/p/12395369.html
Copyright © 2020-2023  润新知