zoukankan      html  css  js  c++  java
  • shell常用代码积累

    1、使用getopts从命令行接收参数

       例:

        while getopts h:u:p: OPTION

        do

          case $OPTION in 

           h) echo "主机地址:$OPTARG";;

       u) echo "用户名:$OPTARG";;

       p) echo "密码:$OPTARG";;

           ?) echo "无效的选项";;

          esac 

       done  

    getopts的选项后可以有冒号也可以没有,有冒号的选项表示在输入时选项后有值,值存在变量$OPTARG中,没有冒号表示不跟值。

     

    2、获取某段时间内的月份列表

       startdate=$1

       enddate=$2

       datecode=$startdate

       i=0

       until [ "$datecode" -ge "$enddate" ]

       do

            datecode=$(date -d "$startdate01 $i month" +%Y%m)

            i=$((i+1))

            echo $datecode

       Done

    执行时通过命令行输入起始时间和结束时间,即可输出这段时间内的月份列表。若想罗列出每一天,则只需将month改成day,将%Y%m该成%Y%m%d

     

    3、获取字符串长度

       myvar="jsldjfoupsdfplsjdlf"

       echo ${#myvar}

       只需要在变量名前面加上#即可。

     

    4、三种获取本地ip的方法

    第一种方法:ifconfig|grep inet |awk '{print $2}'|sed '2d'|awk -F : '{print $2}'

    第二种方法:ifconfig|grep inet|sed -n '1p' |awk '{print $2}'|awk -F : '{print $2}'

    第三种方法:ifconfig|grep "inet addr"|grep -v "127.0.0"|awk -F":" '{print $2}'|awk '{print $1}'|head -1

     

    5、字符串转换成时间戳

       date -d "${startTimeIndex} 00:00:00" +%s,若变量为8位数字字符则转换成功,否则转换失败,通常用此来判断输入的时间变量格式是否正确。

     

    6、按行读取文件

    While read Line;do

          对行数据的一些操作

    done< ${filename}

     

    7、判断数据库是否连接成功

       只需要连接数据库然后执行一条数据库操作命令,看能否执行成功即可。

    mysql -h -u -P -p  -e "select 100"

    rtnCode=$? 

    $?表示命令的执行结果,0表示没有错误,其他任何值表示有错误,所以这里只需要判断rtnCode是否等于0 

  • 相关阅读:
    ftp-server(对象存储)
    zabbix监控VMware6.7
    linux安装中文字体
    vsftpd不支持目录软链接的解决办法
    linux内网IP如果判断出网IP地址
    mysql ANSI_QUOTES 这个sql_mode的作用(字段可以使用双引号)
    查看tomcat项目中,具体占用cpu高的线程。
    nginx ssl 自签证书实验
    Redis复制和哨兵部署
    利用Python脚本备份服务器上所有PostgreSQL数据库
  • 原文地址:https://www.cnblogs.com/Cherie/p/3309189.html
Copyright © 2011-2022 走看看