美文网首页
shell编程之for循环

shell编程之for循环

作者: chen_666 | 来源:发表于2021-12-02 10:37 被阅读0次

for 变量 in 值 1 值 2 值 3…
do
程序
done
这种语法中 for 循环的次数,取决于 in 后面值的个数(空格分隔),有几个值就循环几次,并
且每次循环都把值赋予变量。也就是说,假设 in 后面有三个值,for 会循环三次,第一次循环会把值
1 赋予变量,第二次循环会把值 2 赋予变量,以此类推
for (( 初始值;循环控制条件;变量变化 ))
do
程序
done
语法二中需要注意:
初始值:在循环开始时,需要给某个变量赋予初始值,如 i=1;
循环控制条件:用于指定变量循环的次数,如 i<=100,则只要 i 的值小于等于 100,循环就会继续;
变量变化:每次循环之后,变量该如何变化,如 i=i+1。代表每次循环之后,变量 i 的值都加 1。

例子 1:打印时间
[root@localhost ~]# vi sh/for.sh
#!/bin/bash
#打印时间
# Author: shenchao (E-mail: shenchao@atguigu.com)
for time in morning noon afternoon evening
 do
 echo "This time is $time!"
 done
[root@localhost ~]# vi sh/auto-tar.sh
#!/bin/bash
#批量解压缩脚本
# Author: shenchao (E-mail: shenchao@atguigu.com)
cd /lamp
#进入压缩包目录
ls *.tar.gz > ls.log
#把所有.tar.gz 结尾的文件的文件覆盖到 ls.log 临时文件中
for i in $(cat ls.log)
#读取 ls.log 文件的内容,文件中有多少个值,就会循环多少次,每次循环把文件名赋予变量 i
 do
 tar -zxf $i &>/dev/null
#加压缩,并把所有输出都丢弃
 done
rm -rf /lamp/ls.log
#删除临时文件 ls.log
#!/bin/bash
#从 1 加到 100
# Author: shenchao (E-mail: shenchao@atguigu.com)
s=0
for (( i=1;i<=100;i=i+1 ))
#定义循环 100 次
 do
 s=$(( $s+$i ))
每次循环给变量 s 赋值
 done
echo "The sum of 1+2+...+100 is : $s"
#输出 1 加到 100 的和

批量添加用户

#!/bin/bash
#批量添加指定数量的用户
# Author: shenchao (E-mail: shenchao@atguigu.com)
read -p "Please input user name: " -t 30 name
#让用户输入用户名,把输入保存入变量 name
read -p "Please input the number of users: " -t 30 num 
#让用户输入添加用户的数量,把输入保存入变量 num
read -p "Please input the password of users: " -t 30 pass
#让用户输入初始密码,把输入保存如变量 pass
if [ ! -z "$name" -a ! -z "$num" -a ! -z "$pass" ]
#判断三个变量不为空
 then
 y=$(echo $num | sed 's/[0-9]//g')
#定义变量的值为后续命令的结果
#后续命令作用是,把变量 num 的值替换为空。如果能替换为空,证明 num 的值为数字
#如果不能替换为空,证明 num 的值为非数字。我们使用这种方法判断变量 num 的值为数字
 if [ -z "$y" ]
#如果变量 y 的值为空,证明 num 变量是数字
 then
 for (( i=1;i<=$num;i=i+1 ))
#循环 num 变量指定的次数
 do 
 /usr/sbin/useradd $name$i &>/dev/null
#添加用户,用户名为变量 name 的值加变量 i 的数字
 echo $pass | /usr/bin/passwd --stdin $name$i &>/dev/null
#给用户设定初始密码为变量 pass 的值
 done
 fi 
fi

批量删除用户

#!/bin/bash
#批量删除用户
# Author: shenchao (E-mail: shenchao@atguigu.com)
user=$(cat /etc/passwd | grep "/bin/bash"|grep -v "root"|cut -d ":" -f 1)
#读取用户信息文件,提取可以登录用户,取消 root 用户,截取第一列用户名
for i in $user
#循环,有多少个普通用户,循环多少次
 do 
 userdel -r $i
#每次循环,删除指定普通用户
 done

相关文章

  • Shell编程之for循环语句

    Shell编程之for循环语句: 1.for循环基础语法: for 变量名 in [ 取值列表 ] do 循环...

  • shell编程之for循环

    for 变量 in 值 1 值 2 值 3…do程序done这种语法中 for 循环的次数,取决于 in 后面值的...

  • shell编程之while循环

    while [ 条件判断式 ]do程序done

  • Linux Shell:Shell循环语句

    摘要:Linux,Shell Shell中常用循环有for,while Shell循环语法结构 (1)for循环语...

  • 04_SHELL编程之循环语句

    本机课程目标 掌握for循环语句的基本语法结构 掌握while和until循环语句的基本语法结构 一、for循环语...

  • shell循环

    接上一篇shell运算符接着往下说,shell循环: shell循环有三种,一种是for循环,一种是while循环...

  • Shell入门

    Shell Shell编程之Hello World 编写一个hello world shell一般使用.sh作为后...

  • 扣丁学堂Linux培训分享Shell编程之特殊变量讲解

    本篇文章小编给喜欢Linux开发技术或者是想要参加Linux培训学习的小伙伴分享一下Shell编程之特殊变量讲解,...

  • 04_SHELL编程之循环语句_2

    本机课程目标 掌握for循环语句的基本语法结构 掌握while和until循环语句的基本语法结构 一、==for循...

  • day67-shell编程之-while循环

    循环语句常用于重复执行一条指令或一组指令,直到条件不满足停止,shell脚本语言的循环语句常见的有while、un...

网友评论

      本文标题:shell编程之for循环

      本文链接:https://www.haomeiwen.com/subject/nripbktx.html