循环.md
for循环
例1:
for i in list;
do
<command...>
done;
for i in 1 2 3 4;
do
echo $i
done
#结果:1
# 2
# 3
# 4
例2:
for((int i = 0; i < 10; i++))
{
<command...>
}
例3:
#每次i保存一个字符,范围从a到z
#a..z可以替换位为数字范围,如for i in {1 .. 50};
for i in {a .. z};
do
<command...>
done
while循环
例1:
while 条件
do
<command...>
done
例2:
从文件中读取每一行\
while 条件
do
<command...>
done < file.txt
例3:
使用子shell
cat file.txt | ( while read line; do echo $line; done )
例4:
循环体内修改循环体外的变量
variable = 'old_value'
cat file | while read line
do
do something
variable = 'new_value'
done
echo $varable
#输出:old_value
variable = 'old_value'
while read line
do
do something
variable = 'new_value'
done < file.txt
echo $variable
#输出:new_value
通过管道"|"方式为while循环提供数据,实际上相当于新开启了一个线程,而各线程之间变量是互补干扰的
可以理解为管道"|"即调用了一个子shell,并将文件传过去,在该子shell中进行了while循环操作
通过"while 循环 < file"的方式,可以做到将
until循环
x=0;
until [ $x -eq 9 ];
do
let x++;
echo $x;
done