1.冒泡排序
#提示
echo “input several number:”
#-a将输入的值读取到数组array里
read -a array
#将数组的长度单独拿出来可以提高效率,使用let使变量-1,KaTeX parse error: Expected '}', got '#' at position 2: {#̲array[*]}获取数组的长…{#array[]}-1
#冒泡排序的双层循环,
l
e
n
g
t
h
获
取
l
e
n
g
t
h
的
值
f
o
r
(
(
i
=
0
;
i
<
length获取length的值 for((i=0;i<
length获取length的值for((i=0;i<length;i++)){
for((j=0;j<$length-i;j++)){
#这里的[和变量之间的空格不能少,否则会报错
if [ ${array[j]} -gt KaTeX parse error: Expected 'EOF', got '#' at position 27: …} ];then #̲交换数据 temp…{array[j]}
array[j]=
a
r
r
a
y
[
j
+
1
]
a
r
r
a
y
[
j
+
1
]
=
{array[j+1]} array[j+1]=
array[j+1]array[j+1]=temp
fi
}
}
#输出排序后的数组,
a
r
r
a
y
[
∗
]
输
出
数
组
中
的
所
有
元
素
e
c
h
o
"
a
f
t
e
r
s
o
r
t
:
{array[*]}输出数组中的所有元素 echo "after sort:
array[∗]输出数组中的所有元素echo"aftersort:{array[]}"
2.实现三个实数大小排列
#!/bin/bash
tmp=0
echo “input the three number”
read -p “1:” a
read -p “2:” b
read -p “3:” c
if [ $a -gt
b
]
t
h
e
n
t
m
p
=
b ] then tmp=
b]thentmp=a
a=
b
b
=
b b=
bb=tmp
fi
if [ $a -gt
c
]
t
h
e
n
t
m
p
=
c ] then tmp=
c]thentmp=a
a=
c
c
=
c c=
cc=tmp
fi
if [ $b -gt
c
]
t
h
e
n
t
m
p
=
c ] then tmp=
c]thentmp=b
b=
c
c
=
c c=
cc=tmp
fi
echo “the sorted number is : $a $b $c”
3.备份日志
#!/bin/bash
#每周五使用tar命令备份/var/log下的所有日志文件
#vim/root/logbak.sh
#编写备份脚本,备份后的文件名包含日期标签,防止后面的备份将前面的备份数据覆盖
#注意date命令需要使用反引号括起来
tar -czf log-date +%Y%m%d
.tar.gz /var/log
#crontab -e
#编写计划任务 执行备份脚本
00 03 * * 5 /root/logbak.sh
4.显示进度条
#!/bin/bash
#编写脚本 显示进度条
jindu()
{
while :
do
echo -n ‘#’
sleep 0.2
done
}
jindu &
cp -a $1 $2
killall $0
echo “拷贝完成”
5.编写批量修改扩展名脚本
#!/bin/bash
#编写批量修改扩展名脚本。如批量将txt文件修改为doc文件
#执行脚本时,需要给脚本添加位置函数
#脚本名 txt doc
#脚本名 doc jpg
for i in "ls .$1"
do
mv $i ${i%.}.$2
done