Shell脚本入门指南(八):until 循环、case 语句及函数应用

声明!
学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页[B站泷羽sec](https://space.bilibili.com/350329294)

目录

  1. until 循环 1.1 代码功能概述
    1.2 循环条件分析
  2. case 语句 2.1 代码功能
    2.2 代码结构及分析
  3. 基本函数学习 3.1 创建一个简单函数
    3.2 带参数的函数
    3.3 多个参数的函数

1. until 循环

1.1 代码功能概述

以下是一个 until 循环的示例代码:

i=0
until [ ! $i -lt 10 ]
do
    echo $i
    ((i++))
done

这段代码展示了如何使用 until 循环结构。在这个例子中,until 循环会不断输出变量 i 的值,并对 i 进行自增,直到 i 的值不再满足循环条件为止。

1.2 循环条件分析

until 循环的条件部分是 [ ! $i -lt 10 ]。在 Bash 脚本中,[ ] 是用于条件测试的结构,等同于 test 命令。该条件表示:当 i 的值不再小于 10 时,循环将停止。

注意,运行脚本时,不能使用 ./1.sh 来执行代码,而应该使用 bash 1.sh,因为该脚本需要由 Bash 解释器来执行。


2. case 语句

2.1 代码功能

以下是一个 case 语句的示例代码,用于根据用户输入的数字进行不同的处理:

read -p "请输入一个数值:" num
case $num in
    1) echo "你输入的数字是1" ;;
    2) echo "你输入的数字是2" ;;
    *) echo "你输入的是其他数字" ;;
esac

这段代码从用户处获取输入值,并根据输入的数字执行不同的输出:

  • 如果输入的是 1,输出 "你输入的数字是1"
  • 如果输入的是 2,输出 "你输入的数字是2"
  • 如果输入的是其他值,输出 "你输入的是其他数字"

2.2 代码结构及分析

  1. read -p "请输入一个数值:" num:使用 read 命令从键盘读取用户输入,并将输入存储在变量 num 中。-p 选项用于显示提示信息。
  2. case $num incase 语句的起始部分,根据变量 num 的值执行不同的代码块。
    • 1)num 的值是 1 时,执行 echo "你输入的数字是1"
    • 2)num 的值是 2 时,执行 echo "你输入的数字是2"
    • *) 这是通配符分支,当输入不等于 1 或 2 时,执行 echo "你输入的是其他数字"
  3. esac:表示 case 语句的结束。

3. 基本函数学习

3.1 创建一个简单函数

以下是一个简单的函数定义与调用示例:

DemoFunc() {
    echo "hello world"
}
DemoFunc
代码功能

这段代码定义了一个名为 DemoFunc 的函数,函数体内输出字符串 "hello world"。调用该函数后,会打印出该字符串。

代码解读
  1. DemoFunc() {:这是函数定义的开始,定义了函数 DemoFunc,后面的 { 表示函数体的开始。
  2. echo "hello world":这是函数体内部的语句,表示输出 "hello world"
  3. }:这是函数体的结束,标志着函数定义的完成。
  4. DemoFunc:这是调用函数 DemoFunc,执行时会跳转到该函数体内,输出 "hello world"

3.2 带参数的函数

接下来,我们看一个带参数的函数示例:

DemoFunc() {
    echo "hello world"
    echo "My name is $1"
}
DemoFunc momota
代码功能

该函数定义了两个输出:

  • "hello world"
  • "My name is $1",其中 $1 表示函数接收的第一个参数。

调用 DemoFunc momota 时,$1 的值为 momota,因此输出 "My name is momota"

代码解读
  1. DemoFunc() {:函数定义开始。
  2. echo "hello world":输出固定字符串 "hello world"
  3. echo "My name is $1":输出接收到的第一个参数,即 "My name is momota"
  4. }:函数定义结束。
  5. DemoFunc momota:调用函数并传递参数 "momota"

3.3 多个参数的函数

再来看一个有多个参数的函数:

DemoFunc() {
    echo "hello world"
    echo "My name is $1, and my age is $2 years old"
}
DemoFunc momota 22
代码功能

这个函数接收两个参数:

  • 第一个参数是名字,输出 "My name is $1"
  • 第二个参数是年龄,输出 "and my age is $2 years old"

调用 DemoFunc momota 22 时,$1momota$222,输出:

hello world
My name is momota, and my age is 22 years old
代码解读
  1. DemoFunc() {:函数定义开始。
  2. echo "hello world":输出 "hello world"
  3. echo "My name is $1, and my age is $2 years old":输出带有两个参数的字符串。
  4. }:函数定义结束。
  5. DemoFunc momota 22:调用函数并传递两个参数 momota22

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值