zoukankan      html  css  js  c++  java
  • Linux之Bash_Script_Program_001

    Bash little script 几枚。

    1.使用xor操作对三个整数进行排序

    #!/bin/bash
    #
    #Sort 3 numbers
    
    #Check the input number                                                                                                                                                                     
    [ $# -lt 3 ] &&  { echo -e "Invalid input.
    Usage $(basename $0) Number1 Number2 Number3" ; exit 1; } 
    
    #Get the input number and check if it is a integer
    declare -a array
    for i in `seq 0 2`;do
            if [[ $1 =~ ^[0-9]+$ ]]; then
                    array[$i]=$1 
                    shift 
            else 
                    array[$i]=0     
                    echo -e "Invalid input.
    The input must be a integer.
    Usage $(basename $0) Number1 Number2 Number3"
                    exit 1
            fi
    done
    
    #Useage XOR operator to exchange value
    exchange(){
            let $1=$1^$2
            let $2=$1^$2                                                                                                                                                                        
            let $1=$1^$2
    }
    
    max=${array[0]}
    middle=${array[1]}
    min=${array[2]}
    if [ $max -le $middle  ];then
            exchange max  middle
    fi
    if [ $max -le $min  ]; then
            exchange max min
    fi
    if [ $middle -le $min  ];then
            exchange middle min
    fi
    echo "Max:$max; Middle:$middle; Min:$min"

    2.统计安装光盘中rpm包支持的平台种类

    方法1:使用基本正则表达式

    ls *.rpm | grep -o "[^.]*.rpm$" | sort | uniq -c

    方法2:使用正则表达式断言

    ls *.rpm | grep -o -P "(?<=.)[0-9a-z_]*(?=.rpm)" | sort | uniq -c
    ls *.rpm | grep -o -P "(?<=.)[^.]*(?=.rpm)" | sort | uniq -c

    3.awk查看磁盘使用率

    df | awk '//dev/sd/{split($5,array,"%");usage[$1]=array[1];} END{for(i in usage){if (usage[i] > 80{ print "Waring Beyond 80%!!!",i" usage is",usage[i]"%";}}}'

    4.sed实现文件奇数或者偶数行的倒序输出

    #倒序输出偶数行
    sed '1!G;h;$!d' $FILE | sed -n '2~2p'
    #倒序输出奇数行
    sed '1!G;h;$!d' $FILE | sed -n '1~2p'

    5.借助eval打印参数值

    for i in `seq 1 $#`;do
            echo "$i args is $(eval "echo "$$i"")"                                                                                                                               
    done
  • 相关阅读:
    为什么要把js代码写到<!--//-->中
    js逻辑与,或,非
    你不知道的JavaScript——第二章:this全面解析
    你不知道的JavaScript——this词法
    如何避免用户多次点击造成的多次请求
    通用模块设计UMD
    你不知道的JavaScript——第一章:作用域是什么?
    github 操作
    数组中元素累加 reduce
    流星雨
  • 原文地址:https://www.cnblogs.com/orcsir/p/8588332.html
Copyright © 2011-2022 走看看