一、语法
for循环和while类似,常用于执行有限次数的循环,有两种语法结构,
1.变量列表循环
- 语法:
for 变量名 in 变量取值列表
do
指令......
done
变量取值列表中的值,要用空格隔开
说明:
依次获取“变量取值列表”中的值赋值给“变量名”,然后执行“指令”,再重复,直到列表中的所有值都执行过一次后,结束循环
2.C语言结构循环
for((exp1;exp2;exp3))
do
指令......
done
三个表达式用分号隔开
说明:
小括号内是三个表达式,典型样式为((i=1;i<10;i++)),按顺序分别是变量初始化值,变量范围,变量自增或自减,当第一个表达式的i值符合第二个表达式的范围时,执行循环,然后对i值+1,符合范围要求再循环,直到i值不满足条件时,跳出循环
二、简单示例
1.按序打印数字
1) 变量列表循环结构:
- 脚本
for n in 1 2 3 4
do
echo $n
done
- 执行结果
1
2
3
4
2)C语言循环结构
- 脚本
for((i=1;i<4;i++))
do
echo $i
done
- 执行结果
1
2
3当i自加结果等于4后,不符合条件表达式要求,跳出循环
2.命令或传参替换取值列表
1)命令替换法
用ls命令的结果做取值列表,需要写成 `ls` 或 $(ls) 的方式
cat /server/scripts/for1.sh
#!/bin/sh
for file in `ls`
do
echo $file
done
sh /server/scripts/for1.sh
abcd.txt
b.log
ip.txt
t.sh
t.tx
2)省略取值列表传参
当没有in和取值列表时,其实相当于for file in $@,即接收命令行传递的所有参数
cat /server/scripts/for1.sh
#!/bin/sh
for file
# for file in $@
do
echo $file
done
sh /server/scripts/for1.sh `ls`
abcd.txt
b.log
ip.txt
t.sh
t.tx