有时我们需要shell脚本有更多的交互性,比如我们安装某个linux命令的时候,会提示[N / Y]选择安装或者放弃,这时就需要用到shell的read命令。

read命令的基本使用

演示代码如下:

其中-n表示字符串输出尾端不换行

还可以直接在read -p 后面直接跟要显示的字符串

注意,一定要带-p,这样才允许在后面直接跟要显示的字符串,否则会报错

演示代码如下:

当传入的参数有多个的时候

演示代码如下:

如果在read命令行中不指定变量,那么read命令会把任何数据都放到特殊环境变量$REPLY中

演示代码如下:

使用read命令,如果用户迟迟不输入变量,不可能一直等待,所以需要超时设置,-t选项指定了read命令等待输入的秒数。当计时器过期后,read命令会返回一个非零退出状态码。

演示代码如下:

在最上面提到,我们安装linux命令的时候,有时候需要[N/Y]确认是否安装,这是如何实现的呢?

可以通过case命令来实现

演示代码如下:

有时候屏幕上输入参数,但是不想显示出输入的参数,使用-s参数可以做到隐藏方式读取

演示代码如下:

read命令还可以读取文件中的字符串

演示代码如下:

首先通过cat读取file2文件,然后将读取到的内容通管道传给含有read命令的while命令,while循环会持续通过read命令读取文件中的行,直到read命令以非零状态退出。

linux shell 等待输入_shell中获得用户的输入相关推荐

  1. linux用户开机.bashrc,验证linux shell在启动时会自动执行用户主目录下的.bashrc脚本...

    在本文中, 我们来一起验证linux shell在启动时会自动执行用户主目录下的.bashrc脚本(注意是.bashrc而不是bashrc). 如果你的主目录下没有.bashrc, 那也不要担心,自己 ...

  2. Linux循环中累计数据,linux shell 读取for循环中出现难处理的数据之单引号错误实例...

    原语句: #!/bin/bash for test in I don't know if this'll work do echo "work:$test" done 结果: wo ...

  3. linux shell 等待输入_linux运维——基础篇

    说到服务器操作系统,linux的各种发行版本以毫无悬念的姿态占领了绝大部分的市场份额.常见的桌面操作系统Windows与Linux在操作上有着很大的区别. 容器技术最初发源于linux,也成熟结果与L ...

  4. Linux Shell 在运维中的经验总结

    无论是系统运维,还是应用运维,均可分为"纯手工"--> "脚本化"--> "自动化"-->"智能化"几 ...

  5. python让用户输入字符串_Python中接收用户的输入

    一.如何去接收用户的输入?使用函数 input() 函数 input() 让程序暂停运行,等待用户输入一些文本,获取用户的输入后,Python将其存储到一个变量中,以方便后期使用. name = in ...

  6. java如何用键盘输入_java中如何从键盘输入(附代码)

    一.java不像C中拥有scanf这样功能强大的函数,大多是通过定义输入输出流对象.常用的类有BufferedReader,Scanner. 相关java视频教程推荐:java 实例程序:视频教程 1 ...

  7. python请输入_python中的三种输入方式

    python中的三种输入方式 python2.X python2.x中以下三个函数都支持: raw_input() input() sys.stdin.readline() raw_input( )将 ...

  8. 怎么限制表单用户的输入行为,拒绝用户恶意输入非法字符

    今天来说一种限制表单用户输入,假设有一个表单, 要求只能输入数字, 我们会怎么做呢? 我们可以用change事件监听用户的输入情况 ,用e.target.value获取用户输入的值, 这个时候就会出现 ...

  9. java数组的输入_java中如何从键盘输入数组

    相关知识说明: java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入. nextLine()函数: 1.以Enter为结束符,也就是说 nex ...

最新文章

  1. xx.xib: error: Illegal Configuration: Safe Area Layout Guide before iOS 9.0报错问题解决
  2. MongoDB 安全 checklist 及最优配置模板
  3. k8s:服务发现Service
  4. adb shell 小米手机_如何在Android手机上进行自动化测试
  5. 今天的练习是敏捷结果30天的最后一天
  6. 计算机技术在材料物理专业的应用,东北大学材料物理专业要学哪些课程,好学吗?...
  7. 使用Python解密仿射密码
  8. 关于计算机的英语单词及例句,小学生必背英语单词及例句(四年级).doc
  9. ADS-B及雷达显示终端8.2
  10. 【无标题】【全开源】bat编辑器4.5
  11. 上海出租车颜色 失物招领电话
  12. 小白日志——扫灰、加内存条、装系统自己动手丰衣足食
  13. Teigha.NET V19 操作DWG、DXF文件
  14. php多用户修改头像源码,PHP 针对多用户 实现头像更换
  15. 云端服务器维护,云端服务器维护
  16. Ubuntu 如何读取U盘内容
  17. 微博如何做副业?微博上能做兼职吗?如何用微博兼职
  18. Hydroxyl-PEG2000-NHS,HO-PEG2000-NHS,SHN-PEG2000-Hydroxyl
  19. JAVA宠物爱心救助系统计算机毕业设计Mybatis+系统+数据库+调试部署
  20. RabbitMq模式

热门文章

  1. 微信小程序小模块界面,边框带阴影
  2. mysql源码启动_Mysql源码安装、配置、初始化及启动
  3. PHP中的call_user_func_array
  4. golang插入字符串_golang 几种字符串的连接方式
  5. python爬虫scrapy安装_Python爬虫:Scrapy框架的安装和基本使用
  6. table切换数据 vue_Vue 知识整合贴 ( 超干货,适合收藏)
  7. centos java发送邮件发不出去_传真机发不出传真怎么办 传真机发不出传真解决方法【详解】...
  8. plc tcp ip通讯怎么只能连一个客户端_浅谈西门子plc的profinet功能的开放式通信功能...
  9. win7 磁盘根目录(E盘)添加管理员权限
  10. cmd窗口设置charset