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
  • 相关阅读:
    .net core获取数据库连接 抛出The type initializer to throw an exception
    解决本地Bootstrap字体图标不可见的问题
    Bootstrap 遮罩插件jquery.mloading
    oracle 数据库触发器,插入更新时间戳
    入门wpf—— 3、样式
    VisualStudio 连接 MySql 实现增删查改
    Bootstrap-table 使用总结,和其参数说明
    oracle数据库 TIMESTAMP(6)时间戳类型
    3.xadmin配置
    2.Model设计
  • 原文地址:https://www.cnblogs.com/orcsir/p/8588332.html
Copyright © 2011-2022 走看看