泷羽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玩玩有意义