星空网 > 软件开发 > 操作系统

SHELL脚本

要与Linux交互,脚本获取键盘输入的结果是必不可少的,read可以读取键盘输入的字符。

read [-rs] [-a ARRAY] [-d delim] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [var_name1 var_name2 ...]

read命令用于从标准输入中读取输入单行,并将读取的单行根据IFS变量分裂成多个字段,并将分割后的字段分别赋值给指定的变量列表var_name。第一个字段分配给第一个变量var_name1,第二个字段分配给第二个变量var_name2,依次到结束。如果指定的变量名少于字段数量,则多出的字段数量也同样分配给最后一个var_name,如果指定的变量命令多于字段数量,则多出的变量赋值为空。

如果没有指定任何var_name,则分割后的所有字段都存储在特定变量REPLY中。

选项说明:-a:将分裂后的字段依次存储到指定的数组中,存储的起始位置从数组的index=0开始。-d:指定读取行的结束符号。默认结束符号为换行符。-n:限制读取N个字符就自动结束读取,如果没有读满N个字符就按下回车或遇到换行符,则也会结束读取。-N:严格要求读满N个字符才自动结束读取,即使中途按下了回车或遇到了换行符也不结束。其中换行符或回车算一个字符。-p:给出提示符。例如,"-p 请输入密码:"-r:禁止反斜线的转义功能。这意味着"\"会变成文本的一部分。-s:静默模式。输入的内容不会回显在屏幕上。-t:给出超时时间,在达到超时时间时,read退出并返回错误。也就是说不会读取任何内容,即使已经输入了一部分。

使用示例:

(1).将读取的内容分配给数组变量,从索引号0开始分配。

[root@xuexi ~]# read -a array_testwhat is you name? [root@xuexi ~]# echo ${array_test[@]}what is you name?[root@xuexi ~]# echo ${array_test[0]}what

(2).指定读取行的结束符号,而不再使用换行符。

[root@xuexi ~]# read -d '/'what is you name \//  # 输入完尾部的"/",自动结束read

由于没有指定var_name,所以通过$REPLY变量查看read读取的行。

[root@xuexi ~]# echo $REPLYwhat is you name /

(3).限制输入字符。

例如,输入了5个字符后就结束。

[root@xuexi tmp]# read -n 512345[root@xuexi tmp]# echo $REPLY # 输入12345共5个字符12345

如果输入的字符数小于5,按下回车会立即结束读取。

[root@xuexi ~]# read -n 5123[root@xuexi ~]# echo $REPLY123

但如果使用的是"-N 5"而不是"-n 5",则严格限制读满5个字符才结束读取。

[root@xuexi ~]# read -N 5123\n4[root@xuexi ~]# read -N 5123   # 3后的回车(换行)算是一个字符4

(4).使用-p选项给出输入提示。

[root@xuexi ~]# read -p "pls enter you name: "pls enter you name: Junmajinlong[root@xuexi ~]# echo $REPLYJunmajinlong

(5).禁止反斜线转义功能。

[root@xuexi ~]# read -rwhat is you name \?[root@xuexi ~]# echo $REPLYwhat is you name \?

(6).不回显输入的字符。比如输入密码的时候,不回显输入密码。

[root@xuexi ~]# read -s -p "please enter your password: "please enter your password:[root@xuexi ~]# echo $REPLY123456

(7).将读取的行分割后赋值给变量。

[root@xuexi ~]# read var1 var2 var3abc def galsl djks[root@xuexi ~]# echo $var1:::$var2:::$var3abc:::def:::galsl djks

(8).给出输入时间限制。没完成的输入将被丢弃,所以变量将赋值为空(如果在执行read前,变量已被赋值,则此变量在read超时后将被覆盖为空)。

[root@xuexi ~]# var=5[root@xuexi ~]# read -t 3 var1[root@xuexi ~]# echo $var

 

回到系列文章大纲:转载请注明出处:注:若您觉得这篇文章还不错请点击下右下角的推荐,有了您的支持才能激发作者更大的写作热情,非常感谢!

原标题:SHELL脚本

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

ebay:违规海外仓账号即日起将面临严重处罚:https://www.goluckyvip.com/news/700.html
仓储代发货电商知识分享:fanno运营大纲怎么写?:https://www.goluckyvip.com/news/7000.html
海外仓代发电商知识分享:ebay有哪些提高流量的方法 :https://www.goluckyvip.com/news/7001.html
专业的WMS仓储管理系统和普通WMS之间:https://www.goluckyvip.com/news/7002.html
【领星ERP跨境观察】跨境电商知名物流被查,损失高达1100万!:https://www.goluckyvip.com/news/7003.html
Shopee转化率提升多维度易忽视细节分享:https://www.goluckyvip.com/news/7004.html
深圳西乡三月三北帝庙会的千岁盆菜多少钱:https://www.vstour.cn/a/365180.html
TikTok SEO:TikTok会取代谷歌吗?:https://www.kjdsnews.com/a/1836538.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流