Bash shell提供了一些不同的方法来从用户处获得数据,包括以下3中方法:

13.3-获得用户输入(read命令)

read命令从键盘读取变量的值,通常用在shell脚本中与用户进行交互的场合。
该命令可以一次读取多个变量的值,变量和输入的值都需要使用空格隔开。
参数:

  • -a 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符。
  • -d 后面跟一个标志符,其实只有其后的第一个字符有用,作为结束的标志,会举例说  明。
  • -p 后面跟提示信息,即在输入前打印提示信息。
  • -e 在输入的时候可以时候命令补全功能。
  • -n 后跟一个数字,定义输入文本的长度,很实用。
  • -r 屏蔽,如果没有该选项,则作为一个转义字符,有的话 就是个正常的字符了。
  • -s 安静模式/隐藏方式读取,在输入字符时不再屏幕上显示,例如login时输入密码。
  • -t 后面跟秒数,定义输入字符的等待时间   超时模式
  • -u 后面跟fd,从文件描述符中读入,该文件描述符可以是exec新开启的。
  • 在read命令后面,如果没有指定变量名,读取的数据将被自动赋值给特定的变量REPLY

简单的一些常用的使用方式:

  • read 1988name      从标准输入读取输入并赋值给变量1987name。
  • read first last          从标准输入读取输入到第一个空格或者回车,将输入的第一个单词放到变量first中,并将该行其他的输入放在变量last中。
  • read                       从标准输入读取一行并赋值给特定变量REPLY。
  • read -a arrayname  把单词清单读入arrayname的数组里。
  • read -p "text"          打印提示(text),等待输入,并将输入存储在REPLY中。
  • read -r line             允许输入包含反斜杠。
  • read -t 3                 指定读取等待时间为3秒。
  • read -n 2 var          从输入中读取两个字符并存入变量var,不需要按回车读取。
  • read -d ":" var        用定界符“:”结束输入行

举例1:

举例2:

举例3:

举例4:

举例5:

自学Linux Shell13.3-获得用户输入(read命令)的更多相关文章

  1. 自学Linux Shell13.1-命令行参数

    点击返回 自学Linux命令行与Shell脚本之路 Bash shell提供了一些不同的方法来从用户处获得数据,包括以下3中方法: 命令行参数(添加在名利后面的数据) 命令行选项(可修改命令行为的单个 ...

  2. 自学Linux Shell13.2-选项处理(主要getopt、getopts命令)

    点击返回 自学Linux命令行与Shell脚本之路 Bash shell提供了一些不同的方法来从用户处获得数据,包括以下3中方法: 命令行参数(添加在名利后面的数据) 命令行选项(可修改命令行为的单个 ...

  3. Linux&shell之处理用户输入

    写在前面:案例.常用.归类.解释说明.(By Jim) 命令行参数$1为第一个参数,$2为第二个参数,依次类推...示例: #!/bin/bash # using one command line p ...

  4. Linux shell脚本读取用户输入的参数

    新建一个test.sh文件 #!/bin/sh echo "1 : For Test" echo "2 : For nohup &" whiletrue ...

  5. Linux禁止非WHEEL用户使用SU命令

    通常情况下,一般用户通过运行"su -"命令.输入正确的rootpassword.能够登录为root用户来对系统进行管理员级别的配置. 可是.为了更进一步加强系统的安全性,有必要建 ...

  6. Linux:关于设置PS1提示符输入长命令格式出现的问题及解决

    关于设置PS1提示符命令输出格式出现的问题解决 正确的格式 \[\e[;;32m\]xxxx #如果只是改变提示符而不改变命令,在后面加一个结束符. \[\e[;;32m\]xxxx \[\e[0m ...

  7. Linux下设置普通用户使用sudo命令

    1.登录root用户 2.增加root用户对文件sudoers的写权限 chmod u+w /etc/sudoers 3.编辑sudoers,把用户mysql添加进去 vi /etc/sudoers ...

  8. 自学Linux命令行与Shell脚本之路

    自学Linux命令行与Shell脚本之路[第一回]:初识Linux   1.1 自学Linux Shell1.1-Linux初识 1.2 自学Linux Shell1.2-Linux目录结构 1.3  ...

  9. 自学Linux Shell1.1-Linux初识

    点击返回 自学Linux命令行与Shell脚本之路 1.1-Linux初识(架构.内核.shell) 1. Linux架构 Linux系统一般有4个主要部分:内核.shell.文件系统和应用程序.(有 ...

随机推荐

  1. .NET开发微信小程序-生成二维码 - 转

    1.生成小程序二维码功能 直接请求相应的链接.传递相应的参数 以生成商铺的付款码为例: var shopsId = e.ShopsId //付款码的参数 var codeModel = new fun ...

  2. c# 获取文件本身的哈希值

    1. 哈希值是什么 我个人认为,哈希值是一个统称,也就是经过加密算法后得出的长度较短.位数固定的输出序列即散列值,这个哈希值是一个凭证,一个数字签名之类的,唯一对应你加密之前的东西,这都是我自个儿觉得 ...

  3. Codeforces Round #481 (Div. 3)

    我实在是因为无聊至极来写Div3题解 感觉我主要的作用也就是翻译一下题目 第一次线上打CF的比赛,手速很重要. 这次由于所有题目都是1A,所以罚时还可以. 下面开始讲题 A.Remove Duplic ...

  4. Jlink使用技巧之烧写SPI Flash存储芯片

    前言 大多数玩单片机的人都知道Jlink可以烧写Hex文件,作为ARM仿真调试器,但是知道能烧写SPI Flash的人应该不多,本篇文章将介绍如何使用JLink来烧写或者读取SPI Flash存储器, ...

  5. centos7 清除系统日志、历史记录(包括history)、登录信息

    history: # echo > .bash_history //清除保存的用户操作历史记录 # history -cw //清除所有历史 centos7 清除系统日志.历史记录.登录信息: ...

  6. jackson出现错误 Unrecognized field,几种处理方法

    1.请求的JSON里面字段多余映射的实体类,可以通过在类的顶部添加@JsonIgnoreProperties,2.0版本引入 import org.codehaus.jackson.annotate. ...

  7. 5 questions

    1.软件开发中有哪几种过程模型? 2.详细设计有哪几种描述方法? 3.什么是需求分析? 4.软件设计的基本原理包括哪些内容? 5.简述文档在软件工程中的作用? 逸翔.

  8. linux第四次读书笔记

    第四章:进程调度 一.多任务 1.非抢占式多任务 进程会一直执行直到自己主动停止运行(这一步骤称为让步) 2.抢占式多任务 Linux/Unix使用的是抢占式的方式:强制的挂起进程的动作就叫做抢占.进 ...

  9. 北京大学信息科学技术学院本科生课程体系课程大纲选登——计算机网络与WEB技术

  10. Doors Breaking and Repairing CodeForces - 1102C (思维)

    You are policeman and you are playing a game with Slavik. The game is turn-based and each turn consi ...