zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    python中enumerate用法
    python中实现列表元素的永久反转和临时反转
    python中利用循环结构求最大值、最小值、统计元素次数
    python中实现列表中指定元素保留唯一
    c语言中if嵌套
    python中判断列表是否为空
    c语言中避免else悬挂
    python中if条件分支
    ????
    面向对象编程:Java中的抽象数据类型
  • 原文地址:https://www.cnblogs.com/zjgtan/p/3430098.html
Copyright © 2011-2022 走看看