• shell脚本


    1、循环输出日期

    for ((i = 1; i < 10; i++))
    do
    date -d '-'${i}' day' +"%Y%m%d" 
    done

    'xxx'表示的字符串不解析内容 如'${i}'就是按照字符输出

    "xxx"表示字符串解析内容

    如i=3

    "${i}" 输出3

    2、比较两个日期相差的天数

    思路:将日期转为linux时间

    today=`date +%Y%m%d`#当前日期
    yesterday=`date -d "-1 day" +%Y%m%d`#前一天日期
    
    l_today=`date "$today" +%s` #转为linux的秒
    l_yesterday= `date "$yesterday" +%s` #转为linux的秒
    
    interval=`expr $l_today - $l_yesterday`#操作符两边有空格
    inter_day=`expr $interval / 24 / 3600` #expr执行整数操作

    5、时间差计算之计算小时差

    最近遇到的比较坑的问题。date -d命令不能将201402220900转换成秒,需要转换到标准格式然后计算秒

    runday=20140221
    runhour=09
    
    RUNTIME=`date -d "${runday} ${runhour}" +%Y-%m-%d" "%H:00:00`
    RUNTIME=`date -d "${RUNTIME}" +%s`

    4、变量

    var=1#变量初始化
    var=$var+1#字符串连接
    var=`expr $var + 1`#用于整数值运算
    echo $var | awk '{xxx}' #用awk进行数学运算

     5、数组

    array=(1 2 3 4) #数组声明
    array[0]=1#索引赋值
    array[1]=2
    ${array[0]} #索引元素
    for data in ${array[@]}
    do
        #遍历数组
        echo ${data}
    done
    
    declare -A array#申明关联数组(字典)
    array[a]=1#赋值
    array=([a]=1 [b]=2)#赋值

     6、读行文本

    cat file | while read line
    do
      echo ${line}
    done

    上面这个写的不好,因为用到了管道,while循环位于管道中,这意味着在运行过程中,while循环实际是位于一个新的SHELL中的,while循环中的变量无法被保存下来。更好的写法。

    while read line
    do
        INPUT_PATH="${INPUT_PATH}, ${nsclickPath}/${line}"
    done < tmp 

    7、grep 命令

    grep -v xxx file#排除查找
    grep -v xxx file | grep yyy#多级查找
    命令执行成功返回0,可以通过man查找手册
    
    if [ $? -ne 0 ]
    do
          exit 1  
    done
  • 相关阅读:
    使用SharePoint文档库需注意的问题
    Windows 2003 lassess.exe 系统错误
    使用javascript 实现.net 验证控件功能
    NetAdvantage For .NET全新推出 2008 Volume 2 版加强了对web图表的支持
    Aspose.Total 发布Q12010第一季度版
    FastReport VCL4.9发布
    StimulReport.Net报表控件推介
    .NET Reactor超高性价比的混淆器
    TeeChartfor.NET 全面支持VisualStudio2010和.NET Framework4.0 (控件中国网)
    Dundas Dashboard V2.0仪表盘控件的发布
  • 原文地址:https://www.cnblogs.com/zjgtan/p/3430098.html
Copyright © 2020-2023  润新知