Shell编程之循环语句与函数

本文详细介绍了Shell编程中的循环语句,包括for、while和until,通过实例展示了它们的使用方法。此外,还深入讲解了Shell函数的定义、返回值、作用范围、参数传递和递归。同时,对Shell数组的定义、获取长度、元素操作等进行了阐述。
摘要由CSDN通过智能技术生成

目录

一、循环语句

1 for循环

1.1 for 循环语句的语法结构如下:

1.2 for语句的执行流程:

 1.3 取值演示

 1.4 花括号 {} 和 seq 在 for 循环的应用

1.5 不带列表循环执行由用户指定参数和参数的个数决定的for循环

1.6 类C风格的for循环

1.7 实例展示

2 while语句

2.1  while循环语句的语法结构如下所示

2.2 执行流程

2.3 示例展示

3 until语句

3.1 语法结构如下所示:

二、Shell函数

1 函数基本格式

1.1 函数格式 

1.2 实例:

2 函数返回值

3 函数作用范围

4 函数的参数

5 递归函数 

三、Shell数组

1、定义数组

2、获取数组长度,数组的内容

3、元素切片

 4、元素替换

5、元素删除

6、冒泡排序


一、循环语句

1 for循环

使用 for 循环语句时,需要指定一个变量及可能的取值列表,针对每一个不同的取值重复执行相同的命令序列,直到变量值用完退出循环。

1.1 for 循环语句的语法结构如下:

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

遍历
for 变量名 in {list}
do
    命令序列
done

1.2 for语句的执行流程:

  • 首先将列表中的第1个取值赋给变量,并执行 do···done 循环体中的命令序列

  • 然后将列表中的第2个取值赋给变量,并执行循环体中的命令序列……

  • 以此类推,直到列表中的所有取值用完,最后将跳至 done 语句,表示结束循环

 

 1.3 取值演示

打印 1 - 5 这5个数字

 打印5次hello worl

 1.4 花括号 {} 和 seq 在 for 循环的应用

for i in {1..50..2} 1-50的奇数

for i in {2..50..2} 1-50的偶数

for i in {10..1} 1-10倒序排列

for i in $(seq 10) 1-10正序排列

for i in $(seq 10 -1 1) 1-10倒叙排列

for i in $(seq 1 2 10) 1-10的奇数,中间为步长

for i in $(seq 0 2 10) 1-10的偶数,中间为步长

1.5 不带列表循环执行由用户指定参数和参数的个数决定的for循环

for 变量名
do
	command
done

1.6 类C风格的for循环

格式:
for ((i=1;i<=5;i++))
do
	echo $i
done

# i++ ; i=i+1 先赋值再运算 i=1 之后 再 +1
# ++i ; 1+1=i 先运算再赋值 1=i 之后再 =i

类C风格的运算符用法
++ 自身变量+1
-- 自身变量-1
+=5 自身变量+5
-=5 自身变量-5
*=5 自身变量*5
/=5 自身变量/5
%=5 自身变量%5

 打印 1-10 的奇数

 计算1-10的奇

1.7 实例展示

利用文本取值

 幸运会

数字炸弹

[root@zzh zzh]# cat 6.sh
#!/bin/bash
num=$[RANDOM%100+1]
read -p "请输入要猜测的数值: " b
for((i=1;i<=20;i++))
do
let c=20-$i
if [ $num -eq $b ];then
echo "猜测数字正确,共猜测$i次"
break
 elif [ $num -gt $b ];then
 echo "猜小了,还剩$c次机会"
else
 echo "猜大了,还剩$c次机会"
fi
read -p "请重新输入要猜测的数值:" b
done
[root@zzh zzh]# 

2 while语句

for循环语句非常适用于列表对象无规律,且列表来源已固定(如某个列表文件࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值