shell编程实战之read函数基础

shell编程实战


1.用法:

  • 用于从标准输入读取数据(键盘)
  • 也可以从文件中读取(此时是读取一行文件)

2.语法:

read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-p prompt] [-t timeout] [-u fd] [name....]
参数说明:
  • -a 后面跟一个变量,该变量会被认为为数组,然后给其复制,默认是以空格为分隔符
  • -d 后面跟一个标志符,其实只有其后的第一个字符有用,作为结束的标志
  • -p 后面跟提示信息,即在输入前面打印提示信息
  • -e 在输入的时候可以使用,命令补全功能
  • -n 后面跟一个数字,定义输入文本的长度,很实用
  • -r 屏蔽\,若没有该选项,则\作为一个转义字符,有的话反斜杠就是个正常的字符了。
  • -s 安静模式,在输入字符时不再屏幕上面显示(常用于输入密码)
  • -t 后面跟秒数,定义输入字符的等待时间
  • -u 后面跟fd,从文件描述符中读取,该文件描述符可以是exec新开启的W

3.参数解读实例:

3.1 -a 参数

  • 从键盘读取一组数据进行四则运算
read -a score  #读取三个元素进入score数组
echo ${score[@]} #挨个输出score数组中的元素,不换行
  • 输出结果
输入:11 12 13
输出:11 12 13

3.2 -d

  • 限定读取到那一个字符停止读取,比如下面就是限定读取到字符s,只有第一个字符重要
read -d sscsc v
echo -e "\n"
echo $v

3.3 -p

  • -p选项是为了显示提示信息
read -p "请输入你的密码:" passward
echo $passward 
  • 结果
$ bash 1.sh
请输入你的密码:1234567
1234567

3.4 -n

  • 定义输入密码的长度为8
read  -n8 -p "请输入你的密码:" passward #控制密码的
echo -e "\n"
echo -e $passward 
  • 输出结果
请输入你的密码:12345678

12345678

3.5 -r

  • 读取一段字符串 123adda\ncsdd
read -r -p "请输入字符串" str
echo -e "\n"
echo $str
  • 输出结果
请输入字符串123adda\ncsdd


123adda\ncsdd

3.6 -s

  • 这个选项常和-p一起使用
read  -p "请输如你的密码:" -s -n8 passward
echo -e "\n密码" 
echo $passward
  • 输出结果
请输如你的密码:
密码
12345678

3.7 -t

  • 指定输入字符的等待时间就好像那些输入验证码的程序,输错了第次就要等待时间再次进行输入

3.8 -u

  • 创建两个文件1.txt,2.txt,然后拼接两个文件的第三行和第四行
$ cat 1.xtxt
a
b 
c
d
$ cat 2.txt
1
2
3
4

while read -u2 i && read -u3 j
do 
    echo $i $j 
done 2<1.txt 3<2.txt
  • 输出结果
a 1
b 2
c 3
d 4

总结

大家最好自己敲一遍,这样印象深刻

以上就是今天要讲的内容,本文仅仅简单介绍了linux中read函数的使用,而read函数作为Linux一个不可或缺的输入函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值