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
文档更新时间: 2023-08-09 10:50   作者:月影鹏鹏
IT运维支持-AIWALY-月影工作室