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一个不可或缺的输入函数。