声明!!!
学习视频来自B站UP主泷羽sec,如涉及侵权马上删除文章
视频链接:泷羽sec
笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负
# shell脚本如何与用户交互
read命令
read name age 指定变量信息 susu 23
echo $name #接收用户输入
echo $age #接收用户输入
-p参数(提示用户输入)
只能在bash环境中使用
bash #进入bash环境
read -p "请输入您的姓名:" name
echo $name
-t参数(指定自动退出时间)
如果用户在指定时间内未输入,则会自动退出。
read -t 10 -p "请输入您的姓名:" name
这里不做演示。
-n参数(限制用户输入字符个数)
如果超出限制个数,则会自动退出
read -n 3 -t 10 -p "请输入您的姓名:" name
演示脚本
vim 1.sh
#写入如下脚本
read -p "请输入您的姓名:" name
echo "您输入的您输入的姓名是:$name,请您确认!"
#运行脚本
sh 1.sh
关系运算符
只能对数值进行判断,无法对这个字符串进行判断
-eq (相等)
-lt(小于)
-gt(大于)
-ne(不等于)
else (反转)
脚本
num1=78
num2=89
if [ $num1 -eq $num2 ]; then
echo 相等
else
echo 不相等
fi
代码解释:
num1=78
这一行定义了变量 num1
,并给它赋值 78
。
num2=89
这一行定义了另一个变量 num2
,并给它赋值 89
。
if [ $num1 -eq $num2 ]; then
- 这是一个条件语句
if
,用于检查num1
和num2
是否相等。 [ $num1 -eq $num2 ]
是一个条件表达式,用于判断两个变量的值是否相等。-eq
是数字比较操作符,表示 “等于”。$num1
和$num2
是变量的值,在这个例子中分别是78
和89
。- 因为
78
不等于89
,所以条件表达式的结果是false
。
echo 相等
- 如果条件为
true
(即num1
和num2
相等),那么会执行这行代码,打印相等
。 - 但是在这个例子中,因为
78
和89
不相等,echo 相等
不会被执行。
else
else
是条件语句的另一部分,表示当if
条件为false
时执行的代码块。- 因为
num1
和num2
不相等,所以会进入else
分支。
echo 不相等
- 这行代码会在
num1
和num2
不相等时执行,打印不相等
。
fi
fi
是if
语句的结束标志,表示条件语句的结尾。
其他可自行验证,修改掉运算符即可
[ ]
可以用test来代替,例如
if [ $num1 -eq $num2 ]; then
if test $num1 -eq $num2 ; then
两个语句效果相同
字符串运算符
例子:
str1="hello"
str2="hello"
if [ "$str1" = "$str2" ]; then
echo True
else
echo false
fi
运行结果
-z参数(检查字符串长度是否为零)
脚本演示:
str1="hello"
if [ -z $str1 ]; then
echo True
else
echo false
fi
-n参数(检查字符串长度是否不为零)与-z相反
str1="hello"
if [ -n $str1 ]; then
echo True
else
echo false
fi
逻辑运算符之布尔运算符
示例脚本
num1=9
num2=19
if [ $num1 != 9 ]; then
echo num1不等于9
else
echo num1等于9
fi
-a参数(与运算)
连接两个表达式,两个条件都要成立,才为真。和&&效果一样。
脚本
num1=9
num2=19
if [ $num1 != 9 -a $num2 -lt 20 ]; then
echo True
else
echo False
fi
-o参数(或运算)
连接两个表达式,只有在 至少一个条件为真 时,整个表达式才会为真。和**||**效果一样。
num1=9
num2=19
if [ $num1 != 9 -o $num2 -lt 20 ]; then
echo True
else
echo False
fi
num1=9
num2=19
if [ $num1 != 9 -o $num2 -lt 20 ]; then
echo True
else
echo False
fi
