zoukankan      html  css  js  c++  java
  • shell小记

    shell脚本要求unix换行格式。在win上写好shell后,需先用dos2unix转换过文件才能执行


    if语法片段

    ENV=
    
    if [ "$1" == "ONLINE" ]; then
      ENV=$1
    else
      ENV="TEST"
    fi
    
    或者
    gid=50
    if ((i<7)); then
      gid=1;
    elif ((i<13)); then
      gid=2;
    fi
    

      


    for语法片段

    1)、for 字符遍历的语法
    for ((area=1; area<=1; ++area)); do
    $area ....干啥干啥
    done
    
    
    2)、for in的语法
    for file in `ls`
    do
    sed -i "s/mydir/$filename/g" $file
    newfile=`echo $file | sed "s/mydir/$filename/g"`
    mv $file $newfile
    done
    

      


    数组小例

    1)、数值范例
    varpos=(4 5 6 10 11 12 13 14)
    for ((i=1; i<=8; ++i)); do 
    items=$(((i+1)*10)) 
    pos=${varpos[$i-1]} 
    $pos ..$items...干啥干啥
    done
    
    2)、取数值长度
    for ((i=0;i<${#varpos[@]};i++))
    

      

    一些踩的坑

    1)、stage_2_$area_$gid 输出内容会缺少一个变量的值
    改成stage_2_${area}_${gid}就能够正常输出了。因为shell认为$后连接字符是
    同一个变量,用{}括起来后就正常了
    
    2)、变量数学运算算式入下:
    hourid=$(($day*100+$hour))
    需要用括号括起来
    

      

  • 相关阅读:
    DBC的故事
    MDF,了解一下
    PAT A 1059 Prime Factors (25分)
    素数的判断与素数表的获取
    PAT A 1014 Waiting in Line (30分)
    n皇后问题(全排列+回溯)
    最长回文子串(c++)
    传输方式的分类
    OSI模型概述
    进制转换
  • 原文地址:https://www.cnblogs.com/yylingyao/p/11719771.html
Copyright © 2011-2022 走看看