Shell编程之循环语句与函数

前言

  1. for循环语句怎么用?while循环语句?until循环语句?

1.for语句的结构

1.1for语句的结构

读取不同的变量值,用来逐个执行同一组命令

for变量名in取值列表
do
命令序列
done

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2for语句应用示例

示例1
批量添加用户
用户名存放在users.txt文件中,每行一个初始密码均设为123456
验证脚本
示例2
根据IP地址检查主机状态
IP地址存放在ipadds.txt文件中,每行一个使用ping命令检测各主机的连通性

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.while语句的结构

2.1while语句的结构

重复测试某个条件,只要条件成立则反复执行

while条件测试操作
do
命令序列
done
#!/ bin/bash
i=1
while [ $i -le 5 ]
do
echo $i
let i++
done
echo "最后i的值为: $i"

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

2.2while语句应用示例

1)示例1
批量添加用户
用户名称以stu开头,按数字顺序进行编号
一共添加20个用户,即stu1、stu2、…stu20
初始密码均设为123456
2)示例2
猜商品价格游戏
通过变量RANDOM获得随机数
提示用户猜测并记录次数,猜中后退出循环

3.until语句的结构

重复测试某个条件,只要条件不成立则反复执行

until条件测试操作
do
命令序列
done

在这里插入图片描述

#!/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 *.repo  repo.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

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

5.Shell数组

应用场景包括

获取数组长度
获取元素长度
遍历元素
元素切片
元素替换
元素删除
第一种:直接把要加入数组的元素用小括号括起来,中间用空格分开
num= (11  22  33  44)
${ #num} 显示字符串长度
数组名= (value0  value1  value2)

第二种:精确的给每一个下标索引定义一个值加入数组,索引数字可以不连续num= ( [0]=55  [1]=66  [2]=77 [4]=88)

数组名=([0]=value  [1] =value  [2]=value. . .)

第三种:先把要加入数组的元素全部先赋值给一个变量,然后引用这个变量加入到数组list=“11 12 13 14num= ( $list)

方法三:
列表名="value0   value1  value2...."
数组名=($列表名)

第四种根据下标定义
数组名[0]="11"
数组名[0]="22"
数组名[0]="33"

数组名[0]="value"
数组名[1]="value"
数组名[2]="value"

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

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)数组使用方法

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值