以下笔记学习来自B站泷羽Sec:
B站泷羽Sec
1.until脚本代码
i=0
until [ ! $i -lt 10 ]
do
echo $i
((i++))
done
变量初始化:
i=0:定义了一个变量 i 并初始化为 0,它将作为计数器来使用。
循环条件判断:
until [ $i -ge 10 ]
; do:这里使用了 until 循环,循环会一直执行其中的代码块,直到条件 [
i
−
g
e
10
]
为真。也就是说,当
i
的值大于等于
10
时,循环就会停止。在条件判断中,
i -ge 10 ] 为真。也就是说,当 i 的值大于等于 10 时,循环就会停止。在条件判断中,
i−ge10]为真。也就是说,当i的值大于等于10时,循环就会停止。在条件判断中,i 是获取变量 i 的值,-ge 是 bash 中的比较运算符,表示 “大于等于”。
循环体内容:
echo $i:在每次循环中,会输出当前变量 i 的值。
((i++)):这是对变量 i 进行自增操作,每次循环后 i 的值会增加 1。
当运行脚本时,它会依次输出 0 到 9 这十个数字。
2.case语句
read -p "请您输入一个数值:"num
case $num in
1)echo 您输入的数字是1
;;
2)echo 您输入的数字是2
;;
*)echo 您输入的是其他数字
;;
esac
read -p “请您输入一个数值:” num:
这行代码使用了read命令,它的作用是从标准输入(通常是键盘输入)读取用户输入的数据。
-p选项是read命令的一个参数,用于在等待用户输入之前显示指定的提示信息。在这里,提示信息是 “请您输入一个数值:”。
num是一个变量名,read命令会将用户输入的内容存储到这个变量中,以便后续在脚本中使用。
case $num in:
这是case语句的开始部分。case语句用于根据变量的值进行不同的分支处理。在这里,要判断的变量就是前面通过read命令获取到用户输入并存储在num变量中的值。
- echo 您输入的数字是1 ;;:
这是case语句中的一个分支。当num变量的值等于1时,就会执行这个分支内的代码。
echo命令用于在命令行输出指定的信息。在这里,当用户输入1时,就会输出 “您输入的数字是 1”。
;;是case语句中每个分支结束的标记,表示这个分支的处理到此结束,继续判断下一个可能的分支。 - echo 您输入的数字是2 ;;:
类似上面的分支,当num变量的值等于2时,执行这个分支。输出 “您输入的数字是 2”,同样以;;结束该分支。
*)
echo 您输入的是其他数字 ;;:
*
是一个通配符,在case语句的这个分支中,它表示匹配任何其他没有被前面具体分支匹配到的值。
所以当num变量的值既不是1也不是2时,就会执行这个分支,输出 “您输入的是其他数字”,最后以;;结束。
esac:
这是case语句的结束标记,表示整个case语句的结束。
3.函数的基本学习
3.1 普通调用
DemoFunc(){
echo "hello world"
}
DemoFunc
这段代码定义了一个名为 DemoFunc 的函数,函数体内部仅包含一条语句,即输出字符里 “hello world”。然后通过调用 DemoFune来执行这个函数,从而使得“hello world”被输出到控制台(假设这是在一个!支持函数定义和调用的脚本环境中运行,比如 bash 脚本环境等)
3.2 调用时传递参数
DemoFunc(){
echo "hello world"
echo "The first num is $1"
}
DemoFunc 123456
这段代码定义了一个函数 DemoFunc,然后调用了该函数并传递了参数123456。函数 DemoFunc 的功能是在被调用时,先输出固定的字符串“hello world",接着输出一个包含参数值的字符串"The first num is $1",这里的 $1 表示函数接收到的第一个参数。
3.3 多参数函数调用
DemoFunc(){
echo "hello world"
echo "The first num is $1 and my name is $2"
}
DemoFunc 123456 meteor