for语句
for语句通过对变量的定义取值决定循环的执行次数,根据变量赋值的次数,for循环内的指令将被执行相同的次数,
如定义一个变量i取值为1、3、5,则最终for循环将循环执行命令3次。for语句的语法格式1对变量的赋值通过在in后面直接赋值,多个赋值通过空格隔开:
语法格式2则是首先通过初始化变量的值,也就是定义一个变量的初始值,然后通过运算修改变量的值,当结束循环的条件满足时,for循环结束。
语法1:
For 变量 in 值1,值2...值NDo命令序列done
语法2:
For ((初始化变量值;结束循环条件;运算))Do命令序列done
示例1:固定循环元素
创建脚本,给脚本添加权限,编辑脚本,执行脚本
[root@localhost myproject]# touch fortest.sh
[root@localhost myproject]# vi fortest.sh
[root@localhost myproject]# chmod 755 fortest.sh
[root@localhost myproject]# ./fortest.sh
脚本如下:
#!/bin/bashfor varstr in AAA BBB CCCdoecho "当前值为:" $varstrdone
示例2:打印9*9乘法表
脚本:
#!/bin/bashfor i in {1..9}dofor((j=1;j<=i;j++))doprintf "%-8s" $j*$i=$((j*i))doneechodone~
执行结果
while语句
while语句的语法格式, 在循环前对运行条件进行判断,运行条件满足
时,循环将一直被执行,直到测试条件失败时循环结束。 while语句可以通过read命令每次读
取一行文件内容,文件内容有多少行, while循环就执行多少次,读取文件结束时,循环结束
语法1:
While [ 条件 ]Do命令序列Done
语法2:
While read -r lineDo命令序列Done < file
示例1:输出1~20的数字
脚本:
#!/bin/bashT_NUM=1while [ $T_NUM -le 20 ]doecho "当前输出:" $T_NUMT_NUM=$((T_NUM+1))done~
执行结果:
示例2:打印网卡配置文件的所有内容
脚本:
#!/bin/bashFILE=/etc/sysconfig/network-scripts/ifcfg-ens33while read -r linedoecho $linedone < $FILE
执行结果:
until语句
根据条件判断循环是否继续执行,util代表的是直到条件满足时循环才结束。
语法:
Until [ 条件 ]Do命令序列Done
示例1:输出30~1的数字
脚本
#!/bin/bashT_NUM=30until [ $T_NUM -eq 0 ]doecho "当前数字:" $T_NUMT_NUM=$((T_NUM-1))done
执行结果:
select语句
Select 语句可以用来生成菜单项目,select循环与for循环格式相同。
语法:
Select var in 参数1 参数2 参数NDoBreakdone
示例:循环打印设置的参数值
脚本
#!/bin/bashselect var in "AAA" "BBB" "CCC"dobreakdone~
执行结果: