设为首页 收藏本站
查看: 704|回复: 0

shell read用法分析_学习笔记

[复制链接]

尚未签到

发表于 2018-8-22 07:46:13 | 显示全部楼层 |阅读模式
  时间:2017.12.19
  作者:李强
  参考:man,info,magedu讲义,万能的internet
  实验环境:CentOS 6.9与CentOS7.4
  声明:以下英文纯属个人翻译,英文B级,欢迎纠正,以下内容纯属个人理解,并没有对错,只是参考,盗版不纠,才能有限,希望不误人子弟为好。
  读取用户输入:
  1、read
  read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]
  read接收的和cat一样是标准输入。他会将接收来自stdin或者从fd中(如果-u选项使用的话)的单独一行,然后每行划分成像单词一样的段。你指定几个变量划分成几个段,以空格为分隔符,目前看是如此。然后把空格分割的段赋值个定义的变量。
  

[root@centos6 ~]#read x  y  
1x 2y 3z
  
[root@centos6 ~]#echo $x
  
1x
  
[root@centos6 ~]#echo $y
  
2y 3z
  
[root@centos6 ~]#
  

  这里我们指定了2个name,然后就会把输入的"1x 2y 3z"这一行,以空格划分成2段,前面是1x,后面是"2y 3z"。然后前面复制给x,后面赋值给y
  。如果只指定了x,那么一整行都会赋给x,如果没有指定name,存放在REPLAY变量中
  选项:
  -p prompt:prompt,提示信息,其后跟name把用户stdin存放到name中
  -t  timeout :timeout,用户一定时间不输入,就退出程序
  -s  :不打印来自终端的输入,可用于密码输入,但是回车后并没有换行。
  -d  delim:以某个定界符来终止变量内容的读取。
  -e  :
  -r   :禁止反斜线做为转义符使用,就是单纯的反斜线字符。
  -a array
  -n  nchars
  -N nchars
  

1)、test read  
[lq@centos7 ~]$. 5.sh  second line
  
> three line
  
> last line
  
> eof
  
word:first lne
  
[lq@centos7 ~]$cat 5.sh
  
#!/bin/bash
  
#test read word  split
  
read  word
  
echo word:$word
  

  
如上所示:第一行的内容给了第一个变量word 后面没有指定name,就没了。
  

  
2)、#test read  -d
  
[lq@centos7 ~]$. 3.sh  eof
  
pwd1:123
  
pwd2:
  
[lq@centos7 ~]$cat 3.sh
  
#!/bin/bash
  
#test read  -d
  
read -d "," -p "输入密码:" pwd1 pwd2
  
echo -e "pwd1:$pwd1\npwd2:$pwd2"
  

  
3)、#test read -r
  
[lq@centos7 ~]$vi 3.sh
  
#!/bin/bash
  
read  -rp "输入密码:" pwd1
  
echo  "pwd1:$pwd1"
  
[lq@centos7 ~]$. 3.sh
  
输入密码:1\n2
  
pwd1:1\n2
  
[lq@centos7 ~]$vi 3.sh
  
#!/bin/bash
  
#test read -r
  
#read  -rp "输入密码:" pwd1
  
read  -p "输入密码:" pwd1
  
echo  "pwd1:$pwd1"
  
[lq@centos7 ~]$. 3.sh
  
输入密码:1\n2
  
pwd1:1n2
  

  

  4)、read -u
  while read -u3 i && read -u4 j;do
  echo $i $j
  done 3

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-554867-1-1.html 上篇帖子: shell脚本-监控网络情况 下篇帖子: shell 格式化输出nginx的编译参数
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表