企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# **一、语法** for循环和while类似,常用于执行有限次数的循环,有两种语法结构, ## **1.变量列表循环** * 语法: ``` for 变量名 in 变量取值列表 do 指令...... done ``` > 变量取值列表中的值,要用空格隔开 **说明:** 依次获取“变量取值列表”中的值赋值给“变量名”,然后执行“指令”,再重复,直到列表中的所有值都执行过一次后,结束循环 ## **2.C语言结构循环** ```shell for((exp1;exp2;exp3)) do 指令...... done ``` > 三个表达式用分号隔开 **说明:** 小括号内是三个表达式,典型样式为((i=1;i<10;i++)),按顺序分别是变量初始化值,变量范围,变量自增或自减,当第一个表达式的i值符合第二个表达式的范围时,执行循环,然后对i值+1,符合范围要求再循环,直到i值不满足条件时,跳出循环 # **二、简单示例** ## **1.按序打印数字** ### 1) 变量列表循环结构: * 脚本 ```shell for n in 1 2 3 4 do echo $n done ``` * 执行结果 >1 2 3 4 ### 2)C语言循环结构 * 脚本 ```shell 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` ```shell #!/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 ` ```shell #!/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