shell中for、while、until循环结构等转义字符的详解
一、for循环语句
(一)for语句结构
读取不同的变量值,用来逐个执行同一组命令
语句结构:
for 变量名 in 取值列表
do
命令序列
done
语句结构举例:
for 收件人 in 邮件地址列表
do
发送邮件
done
(二)for循环举例
补充一下seq命令的功能
[root@lyj?~]#seq 1 10 #从1到10将内容列出来
1
2
3
4
5
6
7
8
9
10
[root@lyj?~]#seq 1 2 10 #范围是1到10,从1开始,每次加2
1
3
5
7
9
方法1:
[root@lyj ~]#vim xunhuan.sh
#!/bin/bash
for i in {
1..10} #i从1到10遍历一遍
do #执行循环
echo "---------" #自己加的分割线,方便阅读
echo $i #输出每次遍历的i的值
echo $[ $i + 1 ] #输出遍历的i每次的值加上1之后的值,此处使用[]是因为需要调用$i + 1这个变量
done #结束循环
[root@lyj ~]#sh xunhuan.sh #执行脚本
--------- #输出的分割线,没什么主要重要,就是为了看的时候更清晰点
1 #这个数字是$i输出的从1到10每次遍历的值
2 #这个数字是$i + 1 输出的值,表示每次$i变量的结果再加上一个1
---------
2
3
---------
3
4
---------
4
5
---------
5
6
---------
6
7
---------
7
8
---------
8
9
---------
9
10
---------
10
11
方法2:
[root@lyj ~]#vim demo.sh
#!/bin/bash
for i in $(seq 1 2 10) #表示i范围是1到10之间,从1开始,每次得出的结果加上2
do
echo "---------"
echo $i
echo $[ $i + 1 ] #表示$i的结果加上1后输出
done
[root@lyj ~]#sh demo.sh
---------
1
2
---------
3
4
---------
5
6
---------
7
8
---------
9
10
方法3:
[root@lyj ~]#vim demo.sh
#!/bin/bash
for ((i=1;i