当前位置: 首页 > news >正文

shell编程(4)脚本与用户交互以及if条件判断

shell编程(4)脚本与用户交互以及if条件判断

声明!

学习视频来自B站up主 泷羽sec有兴趣的师傅可以关注一下,如涉及侵权马上删除文章

笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!

有兴趣的小伙伴可以点击下面连接进入b站主页​**B站泷羽sec**

如何在sell脚本与用户交互?

利用read命令来接收用户的输入,输入read name age,敲击回车后窗口会停顿等待接收输入,我们填写feng 18并敲击回车,此时变量name便会被赋值feng,变量age会被赋值18

然后我们利用echo $name来打印变量name的值

利用echo $age来打印变量age的值

在这里插入图片描述

除了这些简单操作之外,read命令的各个参数也是有着不同的作用:

1. -p "prompt":指定提示信息,提示用户输入。
2. -n N:读取指定数量的字符。
3. -s:静默模式,输入的字符不会显示在屏幕上。
4. -r:不解释反斜杠转义字符。
5. -a array:将输入读入一个数组。
6. -d delim:指定一个定界符来结束输入。
7. -u fd:从指定的文件描述符读取。
8. -i file:从指定的文件读取。
9. -N n:读取指定数量的字符,但不赋值给变量。
10. -e:使 `read` 命令支持行编辑和历史功能。
11. -a 'A':将输入读入一个数组 `A`。
12. -t timeout`:设置一个超时时间,单位为秒。

例如在我们输入bash进入到bash环境的时候,输入read -p “您的姓名是:” name,敲击回车后就会进入接收输入的模式,等待用户完成输入后便会给变量name赋值用户的输入。

在这里插入图片描述

除了直接在命令行进行操作外,也可以将命令写在脚本上,而后运行脚本,获得所想要的内容。

在这里插入图片描述

关系运算符

在脚本环境中如何简单的做条件判断?

通过vim编写a.sh文件

首先定义两个变量,然后通过if条件判断来进行两个简单的条件判断,再接入关系运算符:
-eq(相等)

-lt(小于)

-gt(大于)

-ne (不等于)

else(反转)

需要注意的是,只能对数值进行判断,无法对这个字符串进行判断

写一个脚本a.sh:

num1=23
num2=37if [ $num1 -eq $num2 ]; then# 如果 $num1 等于 $num2,执行这里的命令echo "The numbers are equal."
else# 如果 $num1 不等于 $num2,执行这里的命令echo "The numbers are not equal."
fi

在这里插入图片描述

条件判断部分:

if [ $num1 -eq $num2 ];​ :

这里使用if 语句来进行条件判断。在 if 语句的条件表达式中,[](注意实际使用时〔和它里面的内容、〕和它前面的内容都要有空格隔开,这里为了方便说明先按紧凑格式写)在Shell脚本中用于进行各种测试操作。

num1和num2​:

是对前面定义的两个变量num1和num2的引用,获取它们的值来参与条件判断。

-eq​:

是一个比较操作符,用于判断两个值是否相等(在数值比较的语境下,这里就是判断num1的值和num2的值是否相等)。

所以整个条件表达式就是在测试num1 的值和num2的值是否相等。

执行逻辑部分:

then:

如果前面的条件判断结果为真(即num1的值和num2的值确实相等),那么就会执行then后面的代码块。
else:

如果前面的条件判断结果为假(即num1的值和num2的值不相等),就会执行else后面的代码块。

总体来说,这段代码就是先定义了两个具有不同初始值的变量,然后通过条件判断来比较这两个变量的值是否相等,并根据判断结果输出相应的字符串。


http://www.mrgr.cn/news/78870.html

相关文章:

  • 成功解决logs is not a directory [Op:CreateSummaryFileWriter] name
  • vue3 + vite + antdv 项目中自定义图标
  • Java设计模式 —— 【创建型模式】原型模式(浅拷贝、深拷贝)详解
  • Qt几何数据类型:QPoint类型详解(基础向)
  • 大数据-237 离线数仓 - 广告业务 需求分析 ODS DWD UDF JSON 串解析
  • IEEE 802.11s wifi mesh网络
  • 初识一维和二维数组
  • 编译器优化技术
  • AI-学习路线图-PyTorch
  • NuHertz/HFSS: 使用矩形、径向和阻抗短截线的平面 LPF 切比雪夫-II 实现
  • 公专业务能力
  • 【C语言】结构体(二)
  • Hot100 - 二叉树的中序遍历
  • 利用市场分析工具对特定国家的产品市场情况进行深入分析的全面指南
  • 无需U盘引导!快速在实体机上安装黑群晖 DSM 7.2(一步到位!黑群晖 DSM 7.2 内置硬盘引导安装教程)
  • Kafka-Connect自带示例
  • Maven学习
  • 力扣题解14——最长公共前缀
  • ThinkPHP Nginx 重写配置
  • 【老白学 Java】抽象类和抽象方法
  • 【UE5 C++】判断两点连线是否穿过球体
  • 基于 LlamaFactory 的 LoRA 微调模型支持 vllm 批量推理的实现
  • 【NLP 4、数学基础】
  • 【软考速通笔记】系统架构设计师⑤——软件工程基础知识
  • Zero to JupyterHub with Kubernetes中篇 - Kubernetes 常规使用记录
  • HarmonyOS