read命令还可以这样用!

  shell下的read命令的作用是从标准流中读取输入,并把读取的内容放到某个变量中。
1.-t参数给用户的输入做限时规定
2.参数-n规定read后面的变量所接收的字符个数。只要在shell界面输入到-n所规定的字符数之后,shell变量立即被赋值。若是没有得到所规定的字符数,shell界面给予等待。
3.-s选项能够使read命令中输入的数据不显示在监视器上(实际上,数据是显示的,只是read命令将文本颜色设置成与背景相同的颜色)。
4.cat test | while read line

5.数组创建

read -a array 将内容读入到数组中
String="just a test"
read -r -a Array <<<"$String"
#read var(转义'\',若不转义\,\可用于多行输入)
Enter your number:123\
456\
789\
0
echo $var #1234567890

echo ${Array[@]}

6.检测方向键
read命令的-n选项也可以检测方向键, 和一些控制按键.

#!/bin/bash

arrowup='\[A'
arrowdown='\[B'
arrowrt='\[C'
arrowleft='\[D'
insert='\[2'
delete='\[3'

read -n3 key

if echo -n "$key" | grep "$arrowup"
then
    echo "Up-arrow key pressed."
    exit 0
else
    echo "------Other key"
fi

 

7.read的默认变量为:$REPLY
故一个不带变量参数的read命令, 将会把来自键盘的输入存入到专用变量$REPLY中

8.通过文件重定向来使用read命令

read arg1 < filename
arg1赋值为filename的第一行(以换行符为分隔符)
read arg1 arg2 < filename
以空白分割字符串
若被赋予变量的个数大于filename的行字符串个数则多余的变量会被赋予null
若被赋予变量的个数小于filename的行字符串个数则最后一个变量将会取得该行剩余的全部部分

9.while和read
command | while read arg
do
....
done
以上部分相当于创建了一个子shell,故变量不会传递
while read arg
do
....
done < filename或<(command)#(注:<和(之间没有空格)

转载于:https://www.cnblogs.com/hana-alice/p/9238327.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值