Shell脚本学习-与用户交互以及if条件判断
声明!
学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页B站泷羽sec
用户交互功能
如何在shell中与用户进行一个交互?这个时候需要引入一个read
命令,先来了解一下什么是read
命令
read命令是处理从键盘或其它输入设备读入字符的一个简单命令。常见用法就是在shell脚本中用来读取用户的输入。除此之外,也可以从文件中读取内容或处理由其它命令输出的内容。
简单使用一下,
read -p "请输入您的名字:" name
-p
后面跟提示信息,即在输入前打印提示信息
输出效果:
┌──(root㉿kali-linux-2024-2)-[~]
└─# read -p "请输入您的名字:" name
请输入您的名字:fengjianliuli
┌──(root㉿kali-linux-2024-2)-[~]
└─# echo $name
fengjianliuli
read
常见参数
参数说明:
-a
后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符。-d
后面跟一个标志符,其实只有其后的第一个字符有用,作为结束的标志。-p
后面跟提示信息,即在输入前打印提示信息。-e
在输入的时候可以使用命令补全功能。-n
后跟一个数字,定义输入文本的长度,很实用。-r
屏蔽\,如果没有该选项,则\作为一个转义字符,有的话 \就是个正常的字符了。-s
安静模式,在输入字符时不再屏幕上显示,例如login时输入密码。-t
后面跟秒数,定义输入字符的等待时间。-u
后面跟fd,从文件描述符中读入,该文件描述符可以是exec新开启的。
示例:
read -t 10 -n 3 -p "请输入您的名字:" name
#要求用户进行输入,切10s未输入会自动退出,字符串不能超过3
echo "您的姓名是:$name"
注:运行的时候要进行加权,给他执行权限(chmod +x 文件名
),详解可以看看之前的文章
if条件判断
主要就是定义两个变量,然后通过if条件判断来进行两个简单的条件判断
先介绍一下关系运算符:
-eq
相等-lt
小于-gt
大于-ne
不等于else
反转
注意:上述只能比对数值,不能比对字符串
编写一个脚本:
num1=19
num2=90
if [ $num1 -eq $num2 ]; then
echo "相等"
else
echo "不相等"
fi
then
如果前面的判断语句为真,则输出后面运行后面的代码块,不是则跳过
[]
也可以用test
替换,变成下面这样:
num1=19
num2=90
if test $num1 -eq $num2 ; then
echo "相等"
else
echo "不相等"
fi
效果一样