文章目录
1. while循环
1.1 while read line
用法1:command|whlie read line;do … done;
注意点:管道符|,循环执行的语句都是子进程,子进程结束后,不修改全局变量
cat file|while read line;
do
...
done
用法2:whlie read line;do … done < file;
不含管道符,循环结束后,会修改全局变量
while read line;
do
...
done < file
1.2 while循环控制条件
- 无限循环实例
while true;
do
echo -e "$date1" >>$BIN_DIR/test.txt
ping -c 100 10.10.10.1 >> $BIN_DIR/test.txt 2>&1
sleep 3
done
while true表示条件永远为真,会一直运行,这种我们称为守护进程
- 计算1到100之间所有奇数之和
i=1;sum=0
while [[ $i -le 100 ]];
do
sum=$[${sum}+${i}]
i=$[$i+2]
done
echo "${sum}"
2. for循环
2.1 for循环条件1
for 变量名 in 变量取值列表
do
指令………
done
- 遍历文件
for file in `ls /etc/sysconfig`
do
echo $file
done
2.2 for循环条件2
for ((exp1;exp2;exp3)); do
指令…………
done
备注:exp1只执行一次
- 计算1到100所有偶数之和
for ((i=0;i<=100;i+=2));
do
sum=$[$sum+$i]
done
echo $sum
- 结合seq命令读取文件指定行
简单介绍seq命令
$ seq 1000 #起始默认是 1,间隔默认也是1
$ seq 2 1000 #间隔默认是1
$ seq 1 3 10 #从1到10,间隔为3,结果是:1 4 7 10
$ seq 5 5 #5
读取文件1到7行
for i in `seq 1 7`;
do
echo $i
done
3. until循环
until 循环条件
do
指令…
done
until是条件不满足就一直执行下面的指令,条件满足就会退出。
提示:until应用场合不多,了解就行
4. select循环
select variable in list
do
循环体命令
done
1、select 循环主要用于创建菜单,按数字顺序排列的菜单项将显示在标准错误上,并显示PS3 提示符,等待用户输入
2、用户输入菜单列表中的某个数字,执行相应的命令
3、用户输入被保存在内置变量 REPLY 中(REPLY要大写)
4、select 是个无限循环,因此要记住用 break 命令退出循环,或用 exit 按 命令终止脚本
5、select 和 经常和 case 联合使用
- 显示不同种类价格
select menu in 铅笔 水笔 毛笔 钢笔
do
case $REPLY in
1|2)
echo "$menu price is 3$"
;;
3|4)
echo "$menu price is 4$"
;;
esac
break
done