泷羽sec-星河飞雪-shell-7
免责声明
学习视频来自 B 站up主泷羽sec,如涉及侵权马上删除文章。
笔记的只是方便各位师傅学习知识,以下代码、网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。
泷羽sec官网:https://longyusec.com/
泷羽sec B站地址:https://space.bilibili.com/350329294
泷羽sec帮会:https://wiki.freebuf.com/front/societyFront?invitation_code=5a2005d9&society_id=239&source_data=2
文章目录
- until循环
- 代码示例
- 代码拆解
- case语句
- 代码示例
- 代码功能
- 函数
- 代码示例
- 代码功能与优化说明
- 额外说明
- 带有传参的函数
- 计算两个数的和
until循环
代码示例
i=0
# 当i不小于10时停止循环
until [ $i -ge 10 ]
do
echo "当前i的值: $i" # 输出当前i的值
((i++)) # i自增
done
代码拆解
- 初始化变量:
i=0
初始化变量i
为0。 - 循环条件:
until [ $i -ge 10 ]
使用until
循环,当i
不小于10时停止循环。这里使用了-ge
(greater than or equal to)运算符来比较i
和10。 - 循环体:
echo "当前i的值: $i"
:输出当前i
的值。((i++))
:使用算术扩展(arithmetic expansion)来将i
的值自增1。
case语句
代码示例
read -p "请输入一个数值: " num
case $num in
1)
echo "输入的是1"
;;
2)
echo "输入的是2"
;;
*)
echo "输入的是其他数字"
;;
esac
代码功能
- 读取用户输入:
read -p "请输入一个数值: " num
使用read
命令读取用户输入的数值,并将其存储在变量num
中。 - case语句:
case $num in
:根据变量num
的值进行模式匹配。1)
、2)
:当num
的值为1或2时,分别输出对应的消息。*)
:当num
的值不匹配任何前面的模式时,输出“输入的是其他数字”。注意,这里的右括号)
后不应有空格。
函数
代码示例
# 定义一个名为DemoFunc的函数,用于输出Hello World!
DemoFunc(){
echo "Hello World !"
}
# 调用DemoFunc函数,执行输出操作
DemoFunc
代码功能与优化说明
- 函数定义:
DemoFunc(){ ... }
:定义了一个名为DemoFunc
的函数。echo "Hello World !"
:函数体中的唯一一条语句,用于输出“Hello World!”。
- 函数调用:
DemoFunc
调用前面定义的DemoFunc
函数,执行输出操作。
额外说明
- 在实际脚本编写中,函数通常用于封装重复使用的代码块,提高代码的可维护性和可读性。
- 可以通过向函数传递参数来使其更加灵活和通用。例如,可以定义一个函数来输出任意字符串,而不是固定的“Hello World!”。
- 在编写复杂的脚本时,合理使用函数可以使代码结构更加清晰,便于调试和维护。
带有传参的函数
计算两个数的和
# 定义一个名为calculate_sum的函数,接收两个参数并计算和
calculate_sum() {
local num1=$1
local num2=$2
local sum=$((num1 + num2))
echo "The sum of $num1 and $num2 is: $sum"
}
# 调用函数并传递参数
calculate_sum 5 10
在这个示例中,calculate_sum
函数接收两个参数$1
和$2
,分别代表要相加的两个数。函数内部使用local
关键字声明局部变量(虽然在这个简单示例中不是必须的,但在更复杂的函数中有助于避免变量名冲突)。然后,使用算术扩展$((...))
来计算两个数的和,并输出结果。