
####/autorun/aa/yy.log是原始数据的路径,自己替换,注意先删除第一行的enbid rsrp,最后结果会加上
count=`cat /autorun/aa/yy.log|wc -l`
cat /autorun/aa/yy.log|awk '{print $1}' >/autorun/aa/yy2.log
let i=0
arr=()
while read line
do
arr[$i]=$line
let i=i+1
done </autorun/aa/yy2.log
len=${#arr[*]}
let len=len-1
###进行冒泡排序
for((i=0i<$leni++))
do
let len=len-i
for((j=0j<lenj++))
do
let k=j+1
if [ ${arr[$j]} -ge ${arr[$k]} ]then
temp=${arr[$k]}
arr[$k]=${arr[$j]}
arr[$j]=$temp
fi
done
done
echo "enbid rsrp">/autorun/aa/yy3.log
len=${#arr[*]}
for((i=0i<$leni++))
do
echo "`cat /autorun/aa/yy.log|grep ''${arr[$i]}''`">>/autorun/aa/yy3.log
done
[root@localhost ~]# a=""\>b=""\
>tmp=""\
>read x\
>a=${x%%,*}\
>b=${x##*,}\
>if [ $a >$b ] then \
> tmp=$a\
> a=$b\
> b=$tmp\
>fi\
>echo $a $b
34,12
12 34
[root@localhost ~]#
可以看出我是直接把代码粘到终端上运行的,所以每一行后都有分号作语句分隔用,然后又用\断行,其实上面这么多行,是在同一行内。
每行前的 >是bash shell自动给出,因为它知道代码还没输完。你只要把下面这样的代码复制上去也就可以:
a=""\
b=""\
tmp=""\
read x\
a=${x%%,*}\
b=${x##*,}\
if [ $a >$b ] then \
tmp=$a\
a=$b\
b=$tmp\
fi\
echo $a $b
用history命令可以查询到我确实就相当于输入在同一行:
1022 a=""b=""tmp=""read xa=${x%%,*}b=${x##*,}if [ $a >$b ] thentmp=$a a=$b b=$tmpfiecho $a $b
1023 history
[root@localhost ~]#
直接上代码#!/bin/bash
echo -n "请输入数字(多个数字间用空格隔开): "
read s
a=($s)
l=$((${#a[@]}-1))
for i in `seq 1 $l`do
f=true
for j in `seq $l -1 $i`do
if [ ${a[$j]} -gt ${a[$((j-1))]} ]then
m=${a[$j]}
a[$j]=${a[$((j-1))]}
a[$((j-1))]=$m
f=false
fi
done
if $fthen
break
fi
done
echo ${a[@]}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)