声明!
学习视频来自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
-
#!/bin/bash
-
这是一个 shebang 行,告诉操作系统这个脚本应该用 Bash 解释器来执行。
-
-
# 定义变量
-
这是一个注释,说明接下来的几行代码是用来定义变量的。
-
-
a=10
-
定义一个变量 a 并赋值为数字10。
-
-
b=20
-
定义另一个变量 b 并赋值为数字20。
-
-
# 进行条件判断
-
这是一个注释,说明接下来的代码是用来进行条件判断的。
-
-
if [ "$a" -eq "$b" ]; then
-
使用 if 语句和 -eq 运算符来检查 a 是否等于 b。
-
-eq 是一个数值比较运算符,用于比较两个数值是否相等。
-
-
echo "a=b"
-
如果 a 等于 b,执行 echo "a=b" 命令,输出字符串 "a=b"。
-
-
elif [ "$a" -gt "$b" ]; then
-
使用 elif(else if)语句和 -gt 运算符来检查 a 是否大于 b。
-
-gt 是一个数值比较运算符,用于比较左边的数值是否大于右边的数值。
-
-
echo "a>b"
-
如果 a 大于 b,执行 echo "a>b" 命令,输出字符串 "a>b"。
-
-
else
-
如果上述条件都不满足,则执行 else 后面的代码块。
-
-
echo "没有符合上述条件"
-
在 else 代码块中,执行 echo "没有符合上述条件" 命令,输出字符串 "没有符合上述条件"。
-
-
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
-
定义变量 a 并赋值为10。
-
定义变量 b 并赋值为20。
-
使用 if 语句和 -eq 运算符来检查 a 是否等于 b。
-
-eq 是一个数值比较运算符,用于比较两个数值是否相等。
-
-
如果 a 等于 b,执行 echo "a=b" 命令,输出字符串 "a=b"。
-
使用 elif(else if)语句和 -gt 运算符来检查 a 是否大于 b。
-
-gt 是一个数值比较运算符,用于比较左边的数值是否大于右边的数值。
-
-
如果 a 大于 b,执行 echo "a>b" 命令,输出字符串 "a>b"。
-
使用另一个 elif 语句和 -lt 运算符来检查 a 是否小于 b。
-
-lt 是一个数值比较运算符,用于比较左边的数值是否小于右边的数值。
-
-
如果 a 小于 b,执行 echo "a<b" 命令,输出字符串 "a<b"。
-
如果上述条件都不满足,则执行 else 后面的代码块,输出 "没有符合上述条件"。
-
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
-
for num in 1 2 3 4 5
-
这一行开始了 for 循环。它定义了一个循环变量 num,并且指定了一个由数字组成的序列(1, 2, 3, 4, 5),这些数字将依次赋值给变量 num。
-
-
do
-
do 关键字标志着循环体的开始,即在每次迭代中将要执行的命令。
-
-
echo "the number is $num"
-
这是一个 echo 命令,用于在终端上输出文本。$num 是一个变量,它将被替换为当前迭代中 num 的值。因此,每次迭代都会输出 "the number is" 后跟当前的数字。
-
-
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 命令将其输出到终端。