shell read命令

  1. read命令 有四个选项 –p (提示语句) –n (接收的字符个数) –t (等待时间) –s (不回显)
  2. 基本读取
    1. read命令接收键盘的输入,得到输入后,将数据存放在一个标准变量中
    2. #!/usr/bin/bash
      read -p "please input youe name:"  name;
      echo  "hello,$name,welcome to this program!";
    3. 上面例子中只有一个变量name,也可以有多个变量,如果输入的数据大于变量个数,那么最后的数据都给最后一个变量。如果输入数据个数小于变量个数,那么输入不会结束
    4. 如果不指定变量,那么read命令读入的值会被放置在系统变量REPLY中。
  3. 计时输入
    1. 使用read命令存在着潜在危险,脚本很可能会停下来一直等待用户的输入,如果无论是否输入数据脚本必须继续执行,可以通过-t 选项设定一个计时器。
    2. -t命令指定read命令的等待输入的秒数,当计时满时,read命令返回一个非零退出状态
    3. #!/usr/bin/bash
      read -t 5 -p "please input your name" name
      echo $name ;
  4. 输入个数
    1. -n 选项来决定输入的个数,当输入个数达到时,退出。
    2. #!/usr/bin/bash
      read -t 5 -n1 -p "Do you want to continue?(Y/N)" answer;
      case $answer in
              Y|y)
                      echo "fine,continue";;
              N|n)
                      echo "ok,goodbye";;
              *)
                      echo "error choice";;
      esac
    3. -n1表示输入一个字符就退出,只要按下一个字符进行回答,read命令立即接受输入并将其传给变量。无需回车键
  5. 默读(输入不显示在监视器上)
    1. 有时候需要用户输入,但是不希望输入的数据显示在显示屏上,典型的例子就是输入密码时。
    2. -s选项使read命令输入的数据不显示在显示器上(实际上,数据是显示的,只是read命令将文本颜色设置为背景相同的颜色)
    3. #!/usr/bin/bash
      read -t 5 -s -p "please input your password" password;
      echo your password is $password;
  6. 读文件
    1. 通过read命令读取linux系统上的文件
    2. 每次调用read命令都会读取文本中的“一行”文本。当文本没有可读的行时,read命令将以非零状态退出。
    3. 读取文件的关键是如何将文本中的数据传送给read命令。最常用的方法是对文件使用cat命令并通过管道直接传送给包含read命令的while命令
    4. cat loop.sh|while read sentence ;do
                           echo $sentence;
                      done;
原文地址:https://www.cnblogs.com/cyj1258/p/12267316.html