博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Shell中read的选项及用法
阅读量:4982 次
发布时间:2019-06-12

本文共 1355 字,大约阅读时间需要 4 分钟。

1. Read的一些选项

 Read可以带有-a, -d, -e, -n, -p, -r, -t, 和 -s八个选项。

-a :将内容读入到数值中

echo -n "Input muliple values into an array:" read -a array echo "get ${#array[@]} values in array"

-d :表示delimiter,即定界符,一般情况下是以IFS为参数的间隔,但是通过-d,我们可以定义一直读到出现执行的字符位置。例如read –d madfds value,读到有m的字符的时候就不在继续向后读,例如输入为 hello m,有效值为“hello”,请注意m前面的空格等会被删除。这种方式可以输入多个字符串,例如定义“.”作为结符号等等。

-e :只用于互相交互的脚本,它将readline用于收集输入行。读到这几句话不太明白什么意思,先跳过。

-n :用于限定最多可以有多少字符可以作为有效读入。例如echo –n 4 value1 value2,如果我们试图输入12 34,则只有前面有效的12 3,作为输入,实际上在你输入第4个字符‘3’后,就自动结束输入。这里结果是value为12,value2为3。

-p :用于给出提示符,在前面的例子中我们使用了echo –n “…“来给出提示符,可以使用read –p ‘… my promt?’value的方式只需一个语句来表示。

-r :在参数输入中,我们可以使用’/’表示没有输入完,换行继续输入,如果我们需要行最后的’/’作为有效的字符,可以通过-r来进行。此外在输入字符中,我们希望/n这类特殊字符生效,也应采用-r选项。

-s :对于一些特殊的符号,例如箭头号,不将他们在terminal上打印,例如read –s key,我们按光标,在回车之后,如果我们要求显示,即echo,光标向上,如果不使用-s,在输入的时候,输入处显示^[[A,即在terminal上 打印,之后如果要求echo,光标会上移。

-t :用于表示等待输入的时间,单位为秒,等待时间超过,将继续执行后面的脚本,注意不作为null输入,参数将保留原有的值

2. Read的相关实例

a. 拼接文件

#将afile文件中的前三行与bfile中的前四行拼接在一起 while read -u3 i && read -u4 j;do echo $i $j done 3

b. 输入不在终端显示

read -p "Input passwd:" -s Passwd echo $Passwd

c. 限时输入,否则退出

#延迟五秒,没有输入将自动退出 read -p "Input a number:" -t 5 Number

d. 读取限定字符

#从输入中取5个字符 read -p "Input a word:" -n 5 Word

e. 等待输出q退出

#输入,直到输入q,将自动退出 read -dp -p "Input some words end with q:" word

全文完

转载于:https://www.cnblogs.com/nwf5d/archive/2011/11/20/2255702.html

你可能感兴趣的文章
PostgreSQL 9.5,带来 UPSERT 等新特性
查看>>
[转][C#][WebApi]
查看>>
[转]NSIS:使用SectionSetFlags根据不同环境自动勾选特定区段
查看>>
一个五位数ABCDE乘以9,得到EDCBA,求此五位数
查看>>
数据库基本常识【总结】
查看>>
iOS8以后自动计算cell的高度
查看>>
forever 使用
查看>>
Ubuntu PostgreSQL安装和配置(转, 自己学习记录,版权归原作者)
查看>>
python的运算符及优先级与python的表达式
查看>>
挂FORM时找不到对应的功能(function)
查看>>
数论的一点前置知识
查看>>
IDEA修改git账号及密码的方法 ----绝壁好使
查看>>
现代软件工程团队项目阿尔法阶段_版本上线_2018.01.09
查看>>
《Qt编程的艺术》——5.1 手动布局
查看>>
win7下无法安装QTP-少了Microsoft Visual c++2005 sp1运行时组件
查看>>
iPhone开发笔记[10/50]:调用initWithNibName方法时不能写上.xib
查看>>
Palindrome subsequence(区间dp+容斥)
查看>>
三、WebView网络显示控件
查看>>
ASP.NET MVC 给ViewBag赋值Html字符转义问题
查看>>
Q3:如何做到服务的独立部署
查看>>