shell脚本排序
‘壹’ Shell基础脚本-运算符优先级
在脚本中,运算执行的顺序被称为优先级: 高优先级的操作会比低优先级的操作先执行
表-1. 运算符优先级(从高到低)
实际上,你只需要记住以下规则就可以了:
现在,让我们利用运算符优先级的知识来分析一下Fedora Core Linux中的/etc/init.d/functions文件。
为了避免在复杂比较运算中的错误,可以把运算分散到几个括号结构中
‘贰’ Shell 脚本cp后给文件加上当天日期,然后根据当天日期判断,再加上顺序数字01 02 03
1、假设你有一堆文件要改名列表
2、例如
#!/bin/sh
cd ./sh
ymd=`date +%Y%m%d`
max=`find . -type f -name '*.sh'|wc|awk '{print $1}'`
x=(`seq -f %02g 1 ${max}`)
i=0
for file in `ls *.sh`;do
file1=$(echo $file|awk -F. '{print $1}')
newfile=$file1-$ymd-${x[$i]}.sh
echo $file $newfile;
/bin/mv $file $newfile;
((i++))
done
3、执行
199.sh 199-20180206-01.sh
204.sh 204-20180206-02.sh
27.sh 27-20180206-03.sh
28.sh 28-20180206-04.sh
76.sh 76-20180206-05.sh
‘叁’ 如何用Shell脚本生成10个随机数并排序
i=1
while[$i-le10]
do
if[$i-eq1]
then
a[$i]=$RANDOM
else
j=$i
a[$j]=$RANDOM
while[$j-ge2]&&[${a[$j]}-le${a[$((j-1))]}]
do
t=${a[$j]}
a[$j]=${a[$((j-1))]}
a[$((j-1))]=$t
j=$((j-1))
done
fi
i=$((i+1))
done
echo${a[@]}
‘肆’ 编写shell脚本实现提取文件中的第1000-2000行数据
for((i=1000;i<=2000;i++))
do
x=${i}"p"
cat f1|sed -n "$x" >>f2
done
cat f2
这里默认认为一条数据一行,从文件f1的第1000行开始逐行读取然后写到新的文件f2中