Linux|Shell编程之循环语句与函数

【Linux|Shell编程之循环语句与函数】
目录

  • 前言
  • 1.for语句的结构
    • 1.1for语句的结构
    • 1.2for语句应用示例
  • 2.while语句的结构
    • 2.1while语句的结构
    • 2.2while语句应用示例
  • 3.until语句的结构
  • 4.shell函数
    • 4.1shell函数
    • 4.2Shell函数
  • 5.Shell数组
  • 6.Shell脚本调试
  • 总结

前言
  1. for循环语句怎么用?while循环语句?until循环语句?
1.for语句的结构 1.1for语句的结构 读取不同的变量值,用来逐个执行同一组命令
for变量名in取值列表 do 命令序列 done

Linux|Shell编程之循环语句与函数
文章图片

Linux|Shell编程之循环语句与函数
文章图片

Linux|Shell编程之循环语句与函数
文章图片

Linux|Shell编程之循环语句与函数
文章图片

1.2for语句应用示例 示例1
批量添加用户
用户名存放在users.txt文件中,每行一个初始密码均设为123456
验证脚本
示例2
根据IP地址检查主机状态
IP地址存放在ipadds.txt文件中,每行一个使用ping命令检测各主机的连通性
Linux|Shell编程之循环语句与函数
文章图片

Linux|Shell编程之循环语句与函数
文章图片

Linux|Shell编程之循环语句与函数
文章图片

Linux|Shell编程之循环语句与函数
文章图片

2.while语句的结构 2.1while语句的结构 重复测试某个条件,只要条件成立则反复执行
while条件测试操作 do 命令序列 done

#!/ bin/bash i=1 while [ $i -le 5 ] do echo $i let i++ done echo "最后i的值为: $i"

Linux|Shell编程之循环语句与函数
文章图片

Linux|Shell编程之循环语句与函数
文章图片

Linux|Shell编程之循环语句与函数
文章图片

Linux|Shell编程之循环语句与函数
文章图片

Linux|Shell编程之循环语句与函数
文章图片

#!/ bin/ bash i=1 while [ $i -le 100 ] do if [[ $i%3 -ne 0 ]] then echo "$i" fi let i++ done

Linux|Shell编程之循环语句与函数
文章图片

Linux|Shell编程之循环语句与函数
文章图片

2.2while语句应用示例 1)示例1
批量添加用户
用户名称以stu开头,按数字顺序进行编号
一共添加20个用户,即stu1、stu2、…stu20
初始密码均设为123456
2)示例2
猜商品价格游戏
通过变量RANDOM获得随机数
提示用户猜测并记录次数,猜中后退出循环
3.until语句的结构 重复测试某个条件,只要条件不成立则反复执行
until条件测试操作 do 命令序列 done

Linux|Shell编程之循环语句与函数
文章图片

#!/bin/bash i=1 sum=0 until[ $i -eq 51 ] do sum=$[$i+$sum] let i++ done echo "$sum"

4.shell函数 4.1shell函数 函数的作用
函数的定义(两种方式)
1
function函数名{
command
}//这是一种规范写法
2
函数名(){
//最常用因为最简洁
command
}
4.2Shell函数 1)将命令序列按格式写在一起
2)可方便重复使用命令序列
3)Shell函数定义
#!/bin/bash f1 () {echo hello } f2 () {echo world } f3 () {echo "$(f1) $(f2)" } f3

#!/bin/bash function backuprepo {cd /etc/yum.repos.d mkdir repo . bak mv *.reporepo.bak mount /dev/sr0/mnt > /dev/ null } makelocalrepo () {echo -e' [local] name=local baseurl=file:///mnt enabled=l gpgcheck=0' > local.repo } uselocalrepo () {yum clean all > /dev/null yum makecache > /dev/null yum install -y httpd > /dev/null } ##############main################## backuprepo makelocalrepo uselocalrepo

#!/ bin/ bash function test1 {read -p"请输入数字" num return s[$num*2] } test1 echo $?

#!/bin/bash sum () {read -p "请输入第一个参数" NUM1 read -p "请输入第二个参数" NUM2 echo "你输入的两个数为: $NUM1 和 $NUM2" SUM=$(($NUM1+$NUM2)) echo "两个数的和为: $SUM" } sum

#!/bin/bash myfunc () {a=8 echo $a } a=9 myfunc echo $a

Linux|Shell编程之循环语句与函数
文章图片

Linux|Shell编程之循环语句与函数
文章图片

Linux|Shell编程之循环语句与函数
文章图片

5.Shell数组 应用场景包括
获取数组长度 获取元素长度 遍历元素 元素切片 元素替换 元素删除

第一种:直接把要加入数组的元素用小括号括起来,中间用空格分开 num= (11223344) ${ #num} 显示字符串长度 数组名= (value0value1value2)第二种:精确的给每一个下标索引定义一个值加入数组,索引数字可以不连续num= ( [0]=55[1]=66[2]=77 [4]=88)数组名=([0]=value[1] =value[2]=value. . .)第三种:先把要加入数组的元素全部先赋值给一个变量,然后引用这个变量加入到数组list=“11 12 13 14” num= ( $list)方法三: 列表名="value0value1value2...." 数组名=($列表名)第四种根据下标定义 数组名[0]="11" 数组名[0]="22" 数组名[0]="33"数组名[0]="value" 数组名[1]="value" 数组名[2]="value"

Linux|Shell编程之循环语句与函数
文章图片

Linux|Shell编程之循环语句与函数
文章图片

Linux|Shell编程之循环语句与函数
文章图片

Linux|Shell编程之循环语句与函数
文章图片

6.Shell脚本调试 1)echo命令
2)bash命令
命令语法 sh [-nvx]脚本名 常用选项 -n、-V、-X

3)set命令
set -x:开启调节模式
set +x:关闭调节模式
总结 1)for语句的结构
2)while语句的结构
3)until语句的结构
4)Shell函数定义方法
5)数组使用方法

    推荐阅读