重复执行一系列命令
for var in a b c d e f g h i j k (for循环假定每个值都是用空格分隔的,要输出空格使用双引号)
do
echo the next char is $var
done
{ 例子 :将一系列命令存放到一个变量中
[root@localhost 11章]# cat for1.sh
#!/bin/bash
list=“a b c d e f g h i j k”
list=$list" l"
for char in $list
do
echo the char is $char
done
}
//没有按行输出,依旧是按空格切割
1.更改字段分符(IFS:空格、制表符、换行符)
IFS=$’ \n’
13.2 C语言风格的for命令
for (( variable assignment ; condition ; iteration process ))
//for (( a = 1; a < 10; a ++ ))
1.变量赋值可以有空格
2.条件中的变量不以$开头
3.迭代过程中的算式未用expr命令格式
for循环中,可以使用多个变量,但是只能有一个条件
13.3 while命令
while test cmd
do
other cmds
done
while 命令允许你在while语句行定义多个测试命令,且所有定义的测试命令都会被执行一遍,但是起决定作用的只有最后一个测试命令。(!每个测试命令都出现在单独的一行)
until 退出状态 !=0
13.5 嵌套循环、控制循环(break,continue)
break 跳出内部循环
break n 跳出外部循环(n为几层循环)
continue 跳出本次循环
continue n n定义了要继续执行的层级
13.8 处理循环的输出
在shell脚本中,可以对循环的输出使用管道或进行重定向,这可以通过在done命令之后添加一个处理命令来实现