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

泷羽sec学习打卡-shell命令4

声明
学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都
与本人无关,切莫逾越法律红线,否则后果自负


关于shell的那些事儿-shell4

    • 如何在shell脚本与用户进行交互?
    • 如何限制用户输入的字符个数呢?
    • 常见的关系运算符
        • 那么,常见的关系运算符有哪些呢?**
    • 实践是检验真理的唯一标准


如何在shell脚本与用户进行交互?

我们利用read参数指定变量信息
在kail中需要先进入bash状态,此时可以利用kail提供的命令行功能
接收用户输入

echo  $name 
echo  $name 

这里为什么没有打印变量,因为没有对变量进行初始化
如何等到用户输入呢?
可以利用read -p "请输入您的姓名" name
输入:dw
打印用户输入的变量

echo $name

在这里插入图片描述

输入时间限制,这里用户交互10s后就会自动退出脚本程序

read -t 10 -p "请输入您的姓名:"  name

-t 10:表示如果用户在10秒内没有输入任何内容,read 命令将超时并结束。
-p “请输入您的姓名:”:在命令行上显示提示信息“请输入您的姓名:”,提示用户输入他们的姓名。

如何限制用户输入的字符个数呢?

read -n 3 -t 10 -p "请输入您的姓名:" name 

在这里插入图片描述

-n 3:这个选项指定 read 命令只读取用户输入的前3个字符,不论用户实际输入了多少字符。

那么,用脚本编写实现呢?

vim su.sh

脚本内容:

read -p "请输入姓名:" name
echo "您输入的姓名是:$name,请您确认!"  

在这里插入图片描述

在这里插入图片描述

常见的关系运算符

条件判断;和大多数的编程语言一样,选择,循环,顺序
创建脚本

vim if.sh

脚本如下;

num1 = 78
num2 = 80
if [ $num1 -eq $num2 ] : then
	echo 相等
else 
	echo 不相等
fi

result:
在这里插入图片描述

那么,常见的关系运算符有哪些呢?**

数值比较运算符:

-eq:等于
-ne:不等于
-gt:大于
-lt:小于
-ge:大于等于
-le:小于等于
字符串比较运算符:

=:等于(用于字符串比较)
!=:不等于(用于字符串比较)
-z:字符串长度为零
-n:字符串长度非零
文件测试运算符:

-e:文件存在
-f:文件存在且为普通文件
-d:文件存在且为目录
-r:文件存在且可读
-w:文件存在且可写
-x:文件存在且可执行
-s:文件存在且大小非零
-h:文件存在且为符号链接
逻辑运算符:

-a:逻辑与(AND)
-o:逻辑或(OR)
!:逻辑非(NOT)
正则表达式匹配运算符(在双方括号 [[ ]] 中使用):

=:字符串匹配正则表达式
!=:字符串不匹配正则表达式
模式匹配运算符(在双方括号 [[ ]] 中使用):

==:字符串匹配模式(等同于 =)
!=:字符串不匹配模式
条件表达式:

-z:字符串长度为零
-n:字符串长度非零
版本号比较运算符(在双方括号 [[ ]] 中使用):

-gt:大于
-lt:小于
-ge:大于等于
-le:小于等于

这段fi是用来标记if语句的结束,是bash特有的
注意点:这里的[] 可以换成空格 shell中脚本和python类似,都是利用缩进格式,继续信息收集实战,shell玩玩有意义

实践是检验真理的唯一标准


http://www.kler.cn/a/414876.html

相关文章:

  • 深入理解计算机系统,源码到可执行文件翻译过程:预处理、编译,汇编和链接
  • 【踩坑日记】【教程】如何在ubuntu服务器上配置公钥登录以及bug解决
  • 专属主机服务器和ECS服务器有什么区别?
  • MCU跨领域融合的风向标是什么?
  • vue3实现自定义导航菜单
  • 如何在Python中进行数学建模?
  • 从数据提取到管理:合合信息的智能文档处理全方位解析【合合信息智能文档处理百宝箱】
  • PHP后台微信医院预约挂号小程序设计与实现(论文+作品)
  • visionpro官方示例分析(一) 模板匹配工具 缺陷检测工具
  • 如何在 Ubuntu 上部署一个属于自己的 Plex 媒体服务器
  • Jest 测试异步函数
  • Spring Cloud Stream实现数据流处理
  • 2024年第十三届”认证杯“数学中国数学建模国际赛(小美赛)
  • Redis - ⭐数据缓存 Cache
  • 知识库助手的构建之路:ChatGLM3-6B和LangChain的深度应用
  • Java 编程的经典反例及其事故分析
  • 可视化建模与UML《状态图实验报告》
  • 对智能电视直播App的恶意监控
  • Layui表格的分页下拉框新增“全部”选项
  • Ardupilot开源无人机之Geek SDK讨论
  • Android NDK开发 JNI 基础
  • Pump Science平台深度剖析:兴起、优势、影响与未来
  • heapq模块常用方法
  • Qt常用控件之显示类控件
  • go语言去除字符串末尾的特定字符
  • Java项目实战II基于SPringBoot的玩具销售商城管理系统(开发文档+数据库+源码)