少儿脚本第五课—for循环
一、for循环
1、概述
读取不同的变量值,用来逐个执行同一组命令。
2、语法结构
分为列表循环,非列表循环,C语言风格循环。
3、列表循环
语法结构
for 变量名 in {list}
do
command
done
或者
for 变量名 in a b c
do
command
done
实例
打印1-5的数字
for i in {1..5}
do
echo $i
done
或者
for i in 1 2 3 4 5
do
echo $i
done
4、不带列表循环
语法结构
for 变量名
do
command
done
实例
给一个参数赋值在后面,然后进行输出
for i
do
echo hello
done
. /for.sh a //把a赋值给变量i,i有值了它就开始执行do..done了
hello
5、C语言风格
语法结构
for ((expr1;expr2;expr3))
do
command
done
expr1:定义变量并赋初值
expr2:决定是否循环
expr3:决定循环变量如何改变,决定循环什么时候退出
实例
for ((i=1;i<3;i++))
do
echo xxx
done
[root@localhost ~]# ./for.sh
xxx
xxx
#!/bin/bash
#输出1-100里面的和
sum=0
for i in {1..100}
do
sum=$[$i+$sum]
done
echo $sum
[root@localhost ~]# ./for.sh
5050
#!/bin/bash
#需求:批量创建用户,以stu开头创建10个用户,并创建密码,友好输出显示
for ((i=0;i<10;i++))
do
useradd stu$i
echo "123" | passwd --stdin stu$i &> /dev/null
echo "stu${i}已经创建"
done
或
for i in {1..10}
do
useradd stu$i
echo "123" | passwd --stdin stu$i &> /dev/null
echo "stu${i}已经创建"
done
#!/bin/bash
#需求:输入5行星星
read -p "请输入星星的规格": num
for ((i=1;i<6;i++))
do
for ((y=1;y<6;y++))
do
echo -n "* "
done
echo
done
[root@localhost ~]# ./for.sh
请输入星星的规格:5
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *