shell编程(4)脚本与用户交互以及if条件判断
声明
学习视频来自B站UP主 泷羽sec,如涉及侵泷羽sec权马上删除文章
笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。
1.shell脚本与用户交互
read是一个系统调用(system call),用于从文件描述符中读取数据。
read 在不同场景中的应用:文件操作,最常见的用法是从磁盘文件读取数据。管道和套接字,read 可以用于从管道或套接字中读取数据。终端输入:在交互式程序中,read 可以从终端输入中读取用户输入。
使用read name age 给 name age 两个变量指定信息,echo $name /echo $age来接收用户输入,

接下来再举个清晰的例子,首先进入bash(指在 Bash shell 环境中输入并执行命令),执行read -p "请输入您的姓名:" name ,这时候就会弹出让你输入一个参数。(-p:是 read 命令的一个选项,表示在读取输入之前显示一个提示信息(即提示用户输入内容)。该选项后面跟随的字符串将作为提示信息显示在终端上。)

输入后使用查看变量name,这是在模拟一个客户端与服务端的交互,在注册,改密码之类的地方很常见。

再讲下一个例子,如果用户5秒内没有输入便自动退出,这里使用-t来指定时间

使用-n来指定输出字符串的长度,一旦达到限制便立即执行

2.用脚本编写模拟
创建一个2.sh文件写入以下内容并执行


3.关系运算符
接下来说一说如何在脚本环境中做一些简单的条件判断。首先定义两个变量,然后通过if语句来进行条件判断,最后接入关系运算符。只能对数值判断,不能对字符串判断。
-eq 相等
-lt 小于
-gt 大于
-ne 不等于
else 反转
创建3.sh文件并输入以下内容,一定要注意空格和分号。
num1=78
num2=89
if [ $num1 -eq $num2 ]; then
echo 相等
else
echo 不相等
fi

[ ]可以换成test,但是最好还是用[ ]。
num1=78
num2=89
if test $num1 -eq $num2 ; then
echo 相等
else
echo 不相等
fi
接下来解释代码
给num1,num2变量赋值
num1=78
num2=89
判断[ ]内的条件测试语句是否相等,如果相等则执行then后面的部分
if [ $num1 -eq $num2 ]; then
如果相等则输出'相等',不相等则输出'不相等',fi用来结束 if 语句块,在 Bash 中,if 的结束是由 fi 来标识的。
echo 相等
else
echo 不相等
fi
浙公网安备 33010602011771号