Linux学习-read学习

本文详细介绍了Shell脚本中read命令的各种用法,包括读取用户输入、设置提示符、限制输入字符数、使用计时器、隐藏输入及从文件读取内容等,展示了read命令在脚本交互中的灵活性。

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

read基本用法

~~注:本程序中代码的执行方式也可以通过先给脚本添加执行权限,然后./scriptName来执行

#!/bin/bash
# read基本用法
# -n 用户直接在名字后面输入内容
echo -n "输入您的名字:"
# 将输入的内容保存到name变量中
read name
echo "您好 $name,欢迎来到我的世界!"

[root@localhost scripts]# bash readtest.sh
输入您的名字:TOM
您好 TOM,欢迎来到我的世界!

#!/bin/bash
# -p参数使用
# -p 在命令行直接指定提示符
read -p "请输入你的年龄:" age
days=$[ $age * 365 ]
echo "你已经出生了$days天了"
[root@localhost scripts]# bash readtest1.sh
请输入你的年龄:10
你已经出生了3650天了

#!/bin/bash
#将提示符后输入的所有数据分配给单个变量

read -p "请输入两个数:" a b
echo "两个数的和:$[ $a + $b ]"

[root@localhost scripts]# bash readtest2.sh
请输入两个数:1 2
两个数的和:3
read后不指定变量
#!/bin/bash
# read命令行中不指定变量,如果是这样,read命令会将它收到的任何数据都放进特殊环境变量$REPLY中

read -p "请输入您所在城市:"
echo 
echo "我居住在$REPLY,欢迎来到$REPLY"

[root@localhost scripts]# bash readtest3.sh
请输入您所在城市:郑州

我居住在郑州,欢迎来到郑州
-t 指定计时器
#!/bin/bash
#-t指定read命令等待输入的秒数,计时器过期后,会返回一个非0的状态退出码

if read -t 5 -p "请输入您的姓名:" name
then
  echo "你好,$name,欢迎来到此脚本"
else
  echo
  echo "对不起,只有五秒时间哟!!"
fi

[root@localhost scripts]# bash readtest4.sh
请输入您的姓名:中国
你好,中国,欢迎来到此脚本
[root@localhost scripts]# bash readtest4.sh
请输入您的姓名:
对不起,只有五秒时间哟!!
read 通过-n#统计字符数
#!/bin/bash
# 通过-n#指定要输入的数据长度

#-n1表示只能输入一个字符,read命令会接受输入并将它传给变量,无需按回车
read -n1 -p "您确定要继续此操作吗?[Y|N]?" answer
case $answer in
Y | y)  echo
        echo "很好,继续..." ;;
N | n)  echo
        echo "好的,再见  "
        exit ;;
esac
echo "这里是脚本结尾哟"

[root@localhost scripts]# bash readtest5.sh
您确定要继续此操作吗?[Y|N]?N
好的,再见  
[root@localhost scripts]# bash readtest5.sh
您确定要继续此操作吗?[Y|N]?Y
很好,继续...
这里是脚本结尾哟
-s隐藏方式读取
#!/bin/bash
# -s隐藏用户的输入(实际上是数据会被显示,只是read命令会将文本颜色设成与背景色一样)

read -s -p "请输入您的密码:" password
echo
echo "您的密码真的是$password吗"
[root@localhost scripts]# bash readtest6.sh
请输入您的密码:
您的密码真的是123456吗
从文件中读取内容
#1.通过输入重定向的方式将数据传入while循环
#!/bin/bash
#从文件中读取信息

count=1
while read line
do
  echo "行 $count$line"
  count=$[ $count +1 ]
done < test
#2.通过管道将数据传递给while循环
#!/bin/bash
#从文件中读取信息

count=1
cat test | while read line
do
  echo "行 $count$line"
  count=$[ $count +1 ]
done

#test文件中内容
[root@localhost scripts]# cat test
123
123
456
789
#执行结果
[root@localhost scripts]# bash readtest7.sh
行 1:123
行 2:123
行 3:456
行 4:789
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值