05-9-shell(6)if条件判断与for循环结构

声明!

学习视频来自B站up主 泷羽sec ,有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!

文章为个人学习笔记。

if判断符号

  • 大于 -gt (greater than)

  • 小于 -lt (less than)

  • 大于或等于 -ge (greater than or equal)

  • 小于或等于 -le (less than or equal)

  • 不相等 -ne (not equal)

  • 相等 -eq (equal)

例子1

创建 k.sh的脚本

┌──(root㉿kali)-[~/work]
└─# bash
┌──(root㉿kali)-[~/work]
└─# vim k.sh    

#!/bin/bash
# 定义变量
a=10
b=20

# 进行条件判断
if [ "$a" -eq "$b" ]; then
    echo "a=b"
elif [ "$a" -gt "$b" ]; then
    echo "a>b"
else
    echo "没有符合上述条件"
fi
  1. ​#!/bin/bash​

    • 这是一个 shebang 行,告诉操作系统这个脚本应该用 Bash 解释器来执行。

  2. ​# 定义变量​

    • 这是一个注释,说明接下来的几行代码是用来定义变量的。

  3. ​a=10​

    • 定义一个变量 a​ 并赋值为数字10。

  4. ​b=20​

    • 定义另一个变量 b​ 并赋值为数字20。

  5. ​# 进行条件判断​

    • 这是一个注释,说明接下来的代码是用来进行条件判断的。

  6. ​if [ "$a" -eq "$b" ]; then​

    • 使用 if​ 语句和 -eq​ 运算符来检查 a​ 是否等于 b​。

    • ​-eq​ 是一个数值比较运算符,用于比较两个数值是否相等。

  7. ​echo "a=b"​

    • 如果 a​ 等于 b​,执行 echo "a=b"​ 命令,输出字符串 "a=b"。

  8. ​elif [ "$a" -gt "$b" ]; then​

    • 使用 elif​(else if)语句和 -gt​ 运算符来检查 a​ 是否大于 b​。

    • ​-gt​ 是一个数值比较运算符,用于比较左边的数值是否大于右边的数值。

  9. ​echo "a>b"​

    • 如果 a​ 大于 b​,执行 echo "a>b"​ 命令,输出字符串 "a>b"。

  10. ​else​

    • 如果上述条件都不满足,则执行 else​ 后面的代码块。

  11. ​echo "没有符合上述条件"​

    • 在 else​ 代码块中,执行 echo "没有符合上述条件"​ 命令,输出字符串 "没有符合上述条件"。

  12. ​fi​

    • ​fi​ 是 if​ 语句的结束标记,表示条件判断语句的结束。

因为 a​ 被赋值为10,b​ 被赋值为20,所以 a​ 不等于 b​ 且 a​ 不大于 b​。因此,脚本会执行 else​ 代码块,并输出 "没有符合上述条件"。如果 a​ 的值被改为大于或等于 b​ 的值,那么脚本会根据比较结果输出 "a=b" 或 "a>b"。

例子2

注意空格

# 定义变量
a=10
b=20

# 进行条件判断
if [ "$a" -eq "$b" ]; then
    echo "a=b"
elif [ "$a" -gt "$b" ]; then
    echo "a>b"
elif [ "$a" -lt "$b" ]; then
    echo "a<b"
else
    echo "没有符合上述条件"
fi
  1. 定义变量 a​ 并赋值为10。

  2. 定义变量 b​ 并赋值为20。

  3. 使用 if​ 语句和 -eq​ 运算符来检查 a​ 是否等于 b​。

    • ​-eq​ 是一个数值比较运算符,用于比较两个数值是否相等。

  4. 如果 a​ 等于 b​,执行 echo "a=b"​ 命令,输出字符串 "a=b"。

  5. 使用 elif​(else if)语句和 -gt​ 运算符来检查 a​ 是否大于 b​。

    • ​-gt​ 是一个数值比较运算符,用于比较左边的数值是否大于右边的数值。

  6. 如果 a​ 大于 b​,执行 echo "a>b"​ 命令,输出字符串 "a>b"。

  7. 使用另一个 elif​ 语句和 -lt​ 运算符来检查 a​ 是否小于 b​。

    • ​-lt​ 是一个数值比较运算符,用于比较左边的数值是否小于右边的数值。

  8. 如果 a​ 小于 b​,执行 echo "a<b"​ 命令,输出字符串 "a<b"。

  9. 如果上述条件都不满足,则执行 else​ 后面的代码块,输出 "没有符合上述条件"。

  10. ​fi​ 结束 if​ 语句。

因为 a​ 被赋值为10,b​ 被赋值为20,所以 a​ 小于 b​。因此,脚本会执行第三个 elif​ 代码块,并输出 "a<b"。如果 a​ 的值被改为等于或大于 b​ 的值,那么脚本会根据比较结果输出 "a=b" 或 "a>b"。

for循环

例子1

创建 demo.sh

for num in 1 2 3 4 5
do
	echo "the number is $num"
done
┌──(root㉿kali)-[~/work]
└─# sh dome.sh                                                                                                             
the number is 1
the number is 2
the number is 3
the number is 4
the number is 5

  1. ​for num in 1 2 3 4 5​

    • 这一行开始了 for​ 循环。它定义了一个循环变量 num​,并且指定了一个由数字组成的序列(1, 2, 3, 4, 5),这些数字将依次赋值给变量 num​。

  2. ​do​

    • ​do​ 关键字标志着循环体的开始,即在每次迭代中将要执行的命令。

  3. ​echo "the number is $num"​

    • 这是一个 echo​ 命令,用于在终端上输出文本。$num​ 是一个变量,它将被替换为当前迭代中 num​ 的值。因此,每次迭代都会输出 "the number is" 后跟当前的数字。

  4. ​done​

    • ​done​ 关键字标志着循环体的结束,即 for​ 循环的结束。

这个 for​ 循环将执行五次迭代,每次迭代中 num​ 的值分别为 1, 2, 3, 4, 和 5。

例子2

for str in "hell wold"
do
	echo $str
done

┌──(root㉿kali)-[~/work]
└─# sh dome.sh                                                                                                             
hell wold

循环语句
for str in "hello world";
    for: 这是循环的关键字,用于启动一个 for 循环结构。
    str: 定义了一个循环变量,在循环过程中,这个变量会被赋予不同的值。
    "hello world": 这里指定了一个值的列表,不过在这个例子中,列表里只有一个元素,就是字符串 "hello world"。所以在整个循环过程中,循环变量 str 只会被赋值这一次,也就是取到的值为 "hello world"。

循环体与输出语句
do: 是与 for 循环起始语句配合使用的关键字,它标志着循环体的开始。在 do 和后面的 done 之间的语句就是每次循环时需要执行的操作。
echo $str: 是用于在终端输出信息的命令。$str: 是对前面定义的循环变量 str 的引用。由于在这个循环中,str 只被赋值为 "hello world",所以当执行 echo $str 时,就会在终端输出 "hello world"。

循环结束
done: 是 for 循环的结束关键字,它标志着整个 for 循环过程结束。

总体而言,这段代码的功能就是将字符串 "hello world" 赋值给循环变量 str,然后通过 echo 命令将其输出到终端。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值