• 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
  • 相关阅读:
    kvm
    Javascript 笔记与总结(2-7)对象
    [Swift]LeetCode172. 阶乘后的零 | Factorial Trailing Zeroes
    Swift5.3 语言指南(五) 基本运算符
    C#6.0语言规范(一) 介绍
    [Swift]LeetCode171. Excel表列序号 | Excel Sheet Column Number
    [Swift]LeetCode169. 求众数 | Majority Element
    [Swift]LeetCode168. Excel表列名称 | Excel Sheet Column Title
    [Swift]LeetCode167. 两数之和 II
    [Java]LeetCode141. 环形链表 | Linked List Cycle
  • 原文地址:https://www.cnblogs.com/wanghzh/p/14802882.html
Copyright © 2020-2023  润新知