for 命令
for var in list
do
command
done
其中list中会包含一系列的值,var会在每次迭代时,赋予 var
一个值,比如第一次迭代会把列表中第一个值赋值给var。
读取列表中的复杂项时,可以使用一下两种方法解决该问题,
1、使用转义字符(反斜线)来将单引号转义。
2、使用双引号来定义用到单引号的值。
更改字段分隔符
特殊的环境变量分隔符IFS:默认是:
空格
制表符
换行符
修改分隔符IFS=$'\n' 这个语句是高速shell在数据值中忽略
空格和制表符。
修改分隔符,在后续的编程中可能会忘记修改回来,因此有以下
编程方式可以使用
IFS.OLD=$IFS
IFS=$'\n'
IFS=$IFS.OLD
就是先保存老的IFS值,然后在修改这样的值。
for循环
for(( variable assigment; condition ; iteration process ))
for (( a = 1; a < 10; a++))
注意:
1、给变量赋值可以有空格
2、条件中的变量不以美元符开头
3、迭代过程的算式未用expr命令格式。
while命令基本格式:
while test command
do
other commands
done
while定义了每次迭代时检查的测试条件。条件成立才会遍历
执行定义好的命令。
until命令
until test command
do
other commands
done
嵌套循环
循环语句可以在循环内使用任意类型的命令,包括其他循环
命令,这种称为嵌套循环。当你在迭代中使用迭代,命令运行
的次数是乘积关系。
循环处理文件数据
结合一下两种技术一块使用:
1、使用嵌套循环
2、修改IFS环境变量
循环的控制命令:
break
continue
跳出命令循环
有时你在内部循环,但需要停止外部循环,break命令接受
单个命令行参数值:
break n
其中n说明了要跳出的循环层级,默认情况下,能为1,表明
跳出的是当前循环。如果你将n设为2,break命令就会停止
下一级的外部循环。
处理循环的输出
循环的重定向输出可以在done命令后添加一个处理命令;
done > 1.txt
for命令允许你遍历一系列的值
while命令提供了基于命令条件的循环,使用普通命令或test
命令来测试变量的条件。只有在命令产生退出状态码0时,while
循环才会继续遍历指定的一组命令。
until命令也提供了遍历命令的一种方法,但它的迭代时建立
在有命令产生非零退出状态码的基础上的,这个特性允许你
设置一个迭代结束前都必须满足的条件。
for var in list
do
command
done
其中list中会包含一系列的值,var会在每次迭代时,赋予 var
一个值,比如第一次迭代会把列表中第一个值赋值给var。
读取列表中的复杂项时,可以使用一下两种方法解决该问题,
1、使用转义字符(反斜线)来将单引号转义。
2、使用双引号来定义用到单引号的值。
更改字段分隔符
特殊的环境变量分隔符IFS:默认是:
空格
制表符
换行符
修改分隔符IFS=$'\n' 这个语句是高速shell在数据值中忽略
空格和制表符。
修改分隔符,在后续的编程中可能会忘记修改回来,因此有以下
编程方式可以使用
IFS.OLD=$IFS
IFS=$'\n'
IFS=$IFS.OLD
就是先保存老的IFS值,然后在修改这样的值。
for循环
for(( variable assigment; condition ; iteration process ))
for (( a = 1; a < 10; a++))
注意:
1、给变量赋值可以有空格
2、条件中的变量不以美元符开头
3、迭代过程的算式未用expr命令格式。
while命令基本格式:
while test command
do
other commands
done
while定义了每次迭代时检查的测试条件。条件成立才会遍历
执行定义好的命令。
until命令
until test command
do
other commands
done
嵌套循环
循环语句可以在循环内使用任意类型的命令,包括其他循环
命令,这种称为嵌套循环。当你在迭代中使用迭代,命令运行
的次数是乘积关系。
循环处理文件数据
结合一下两种技术一块使用:
1、使用嵌套循环
2、修改IFS环境变量
循环的控制命令:
break
continue
跳出命令循环
有时你在内部循环,但需要停止外部循环,break命令接受
单个命令行参数值:
break n
其中n说明了要跳出的循环层级,默认情况下,能为1,表明
跳出的是当前循环。如果你将n设为2,break命令就会停止
下一级的外部循环。
处理循环的输出
循环的重定向输出可以在done命令后添加一个处理命令;
done > 1.txt
for命令允许你遍历一系列的值
while命令提供了基于命令条件的循环,使用普通命令或test
命令来测试变量的条件。只有在命令产生退出状态码0时,while
循环才会继续遍历指定的一组命令。
until命令也提供了遍历命令的一种方法,但它的迭代时建立
在有命令产生非零退出状态码的基础上的,这个特性允许你
设置一个迭代结束前都必须满足的条件。