1.Shell编程循环语句(if 、while、 until)

循环语句

for循环语句

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

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

img

示例:批量创建用户并设置密码

[root@localhost data]# vim xh.sh

img

img

示例:使用for循环进行运算

[root@localhost data]# vim xh.sh

img

img

示例2:循环判断网络是否ping通

[root@localhost data]# vim ping.sh

img

img

while循环语句

  • 重复测试某个条件,只要条件成立则反复执行
  • 常在不知道范围的时候成立
格式:
while 条件测试操作
do
命令序列
done

img

示例:猜商品价格

[root@localhost data]# vim spjg.sh

img

img

untli循环语句

  • 重复测试某个条件,只要条件不成立则反复执行
格式:
until  条件4测试操作
do
命令序列
done

img

示例:

[root@localhost data]# vim until.sh

img

img

登入gb用户测试再次执行脚本

img

img

示例2:求和1+到100

[root@localhost data]# vim qh.sh

img

img

示例3:0-100偶数求和

[root@localhost data]# vim os.sh

img

img

示例4:0-100的奇数和

[root@localhost data]# vim js.sh

img

img

shell函数

将命令序列按照格式写在一块

可方便重复使用命令序列

shell函数定义

格式1:
[ function ] 函数名 () {
命令序列
[ return x ]       \#使用return或者exit可以显式的结束函数 
}

格式2:
函数名 (){
命令序列
}

函数注意事项

直接写函数中调用

函数直接写函数名同名函数后一个生效

调用函数一定要先定义

只要先定义了调用的其他函数定义顺序无关

函数调用的方法

示例

[root@localhost data]# vim hs.sh

img

img

获取函数的返回值
方法一
img
img
方法二
img
img

函数传参

在Shell中,调用函数时可以向其传递参数。在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数…即使用位置参数来实现参数传递。

[root@localhost data]# vim cc.sh

img

img

[root@localhost data]# vim cc.sh

img

img

函数变量的作用范围

  • 函数在shell脚本中仅在当前shell环境中有效
  • shell脚本中变量默认全局有效
  • 将变量限定在函数内部使用local命令

示例1:

img

img

img

示例2:将变量限定在函数内部使用local命令

[root@localhost data]# vim bl.sh

img

img

函数的递归

调用自己本身

示例:求任意数字的阶乘

[root@localhost data]# vim jc.sh

img

img

函数库

作用
可以事先创建一个函数库文件,在里面定义各种常用的函数,然后可以在别的shell脚本中直接引用这个函数库文件,使得不需要再次定义函数即可直接调用函数
示例:
img

img

img

shell数组

shell数组的定义

数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组)

数组元素的下标由 0 开始。

Shell 数组用括号来表示,元素用"空格"符号分割开

在shell语句中,使用、遍历数组的时候,数组格式要写成 ${arr[@]} 或 ${arr[*]}

定义数组的方法

示例1:

格式:

数组名=(value1 value2 value3 ..... )

img

示例2:

数组名=([0]=value1 [1]=value2......)

img

img

示例3:

数组名[0]="value1"

数组名[1]="value2"

数组名[2]="value3"

img

数组遍历

[root@localhost data]# vim bl.sh

img

img

数组切片

格式:${数组名[@/*]:其实位置:长度}

img

数组替换

格式:${数组名[@/*]:/查找字符/替换字符}

img

数组删除和指定下标的值删除

img

数据追加元素

使用下标追加

格式1:数组名[下标]=变量

格式2:数组名+=(变量1 变量2)

img

img

查看函数

img

declare -f #查看具体定义

查看所有数组

img

posted @   DavinWw  阅读(260)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示