zoukankan      html  css  js  c++  java
  • shell 编程

    #shell编程
    $1 ~$9 参数, 10以上的参数${10}
    $# 参数个数
    $* ,$@ , 参数列表, 不加双引号,2个一样,加双引号后,$*是整体
    $? 上一次执行结果的返回值,或函数返回值

    #运算
    $((表达式)) 或 $[表达式]

    #条件
    [空格 表达式 空格]
    $1 -eq 100 ==
    $1 -lt 100 <
    $1 -gt 100 >
    $1 -ge 100 >=
    $1 -le 100 <=
    $1 -ne 100 !=

    #if

    if [条件表达式]
      then
    elif
    [条件表达式]
      then
    else
    fi

    #case

    case $1 in

    1)
      xxx
      ;;
    2)
      xxx
      ;;
    *)
      xxx
      ;;
    esac

    # for

    for((i=1;i<100;i++))
    do
      xxx
    done

    for i in $@
    do
      xxx
    done

    #while

    while [条件表达式]
    do
      xxx
      增量表达式
    done

    #函数
    #定义函数
    function 函数名(){}


    #shell 工具
    cut
    -d 分隔符
    -f 取第几列
    cut -d " " -f 1 cut.txt 
    cut -d " " -f 2,3 cut.txt 

    #awk

    awk [选项参数] 'pattern1{action1}  pattern2{action2}...' filename

    -F 指定输入文件折分隔符

    awk -F: '/^root/{print $7}' passwd

    awk -F: '/^root/{print $1","$7}' passwd

    awk -F : 'BEGIN{print "user, shell"} {print $1","$7} END{print "dahaige,/bin/zuishuai"}' passwd

    awk -v i=1 -F: '{print $3+i}' passwd

    awk -F: '{print "filename:"  FILENAME ", linenumber:" NR  ",columns:" NF}' passwd 

    ifconfig eth0 | grep "inet addr" | awk -F: '{print $2}' | awk -F " " '{print $1}'

    
    #注意: 赋值语句=两边不能加空格,条件语句[]内左右必须有空格
    #while
    
    sum=0
    i=0
    while [ $i -le 100 ]
    do
     sum=$[$sum+$i]
     i=$[$i+1]
    done
    
    echo "结果:$sum"
    
    
    #if
    if [ $1 -eq 1 ]
    then
     echo 'hello beijing!!!'
    elif [ $1 -eq 2 ]
    then
     echo 'hello shanghai!!!'
    
    else
     echo 'hello wuhan!!!' 
    fi
    
    #fun
    #定义函数
    function sum()
    {
     total=$[$1+$2]
    # return $total
    }
    
    #控制台输入
    read -t 5 -p "5秒内输入第一个加数:" n1
    read -t 5 -p "5秒内输入第二个加数:" n2
    
    #调用函数
    sum $n1 $n2
    
    #echo "结果:$?"
    echo "结果:$total"
    
    #/for i
    
    #从1加到100
    sum=0
    for((i=0;i<=100;i++))
    do
     sum=$[$sum+$i]
    done
    
    echo "和为:$sum"
    
    
    #for in
    
    for i in "$@"
    do
     echo "我的女神:$i"
    done
    
    
    for j in "$*"
    do
     echo "我的女神:$j"
    done
    
    
    #case
    case $1 in
    
    1)
     echo '小明哥!!!'
    ;;
    
    2)
     echo '菲儿姐!!!'
    ;;
    
    *)
     echo 'baby face!!!'
    ;;
    
    esac
  • 相关阅读:
    Java实现 LeetCode 697 数组的度(类似于数组的map)
    Java实现 LeetCode 697 数组的度(类似于数组的map)
    Java实现 LeetCode 697 数组的度(类似于数组的map)
    Java实现 LeetCode 696 计数二进制子串(暴力)
    Java实现 LeetCode 696 计数二进制子串(暴力)
    Java实现 LeetCode 696 计数二进制子串(暴力)
    Java实现 LeetCode 695 岛屿的最大面积(DFS)
    Java实现 LeetCode 695 岛屿的最大面积(DFS)
    PHP serialize() 函数
    PHP print_r() 函数
  • 原文地址:https://www.cnblogs.com/wanghzh/p/14802882.html
Copyright © 2011-2022 走看看