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