您的位置:首页 > 运维架构 > Shell

for和select循环语句的应用实践

2018-02-08 20:42 295 查看
for循环语法结构

第一种for循环语句为变量取值型,语法结构为下:

for 变量名 in 变量取值列表
do
指令
done
第二种for循环语句称为c语言型for循环语句,其语法结构如下:
for((exp1;exp2;exp3))
do
指令
done

第二种用法更规范,更整洁
第一个是变量初始化(i=0),第二个为变量的范围(i<100);第三个为变量自增或者自减;

特别说明:
1)如果希望程序持续运行,则多用while,包括守护进程。
2)如果是有限次循环,则多用for,实际工作中使用for的机会比较多

范例11-2,竖向打印5,4,3,2,1
#!/bin/bash
for ((i=5;i>0;i--))
do
echo $i
done
参考答案2:
#!/bin/bash
for i in {5..1}
do
echo $i
done
参考答案3:

#!/bin/bash
for i in `seq 5 -1 1`   #seq中的5是起始数字,-1是步长,1是结束数字
do
echo $i
done
范例11-3:获取当前目录下的目录或者文件名,并将其作为变量列表打印输出

#!/bin/bash
for i in `ls /root`  #获取根下的root的所有文件
do
echo $i
done
范例11-4:用for循环批量修改文件扩展名(把txt改成xpg)
#!/bin/bash
cd /tmp
for i in `ls /tmp`
do
mv $i `echo $i | cut -d . -f1`.xpg
done
或者:
#!/bin/bash
cd /tmp
for i in `ls /tmp`
do
mv $i `echo $i | sed 's/xpg/txt/g'`
done
更简单的是:
[root@localhost tmp]# pwd
/tmp
[root@localhost tmp]# rename "xpg" "txt" .
[root@localhost tmp]# ls
19.txt  1.txt  2.txt  3.txt
[root@localhost tmp]# rename "txt" "xpg" *.txt
[root@localhost tmp]# ls
19.xpg  1.xpg  2.xpg  3.xpg
[root@localhost tmp]#
计算从1加到100;
#!/bin/bash
sum=0
for ((i=1;i<101;i++))
do
sum=$(($sum+$i))
done
echo $sum
范例:11-10 每隔两秒访问一次http://www.baidu.com, 一共访问5次
#!/bin/bash
while true
do
curl www.baidu.com
sleep 2
done
范例11-11:实现mysql分库备份的脚本
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell linux