`

shell的read方法使用介绍

阅读更多
关键字:获取用户输入echo -n(不换行)

read命令-p(提示语句) -n(字符个数) -t(等待时间) -s(不回显) 和“读文件”深入学习

1、基本读取

read命令接收标准输入(键盘)的输入,或其他文件描述符的输入(后面在说)。得到输入后,read命令将数据放入一个标准变量中。下面是read命令

的最简单形式::

#!/bin/bash

echo -n "Enter your name:"   //参数-n的作用是不换行,echo默认是换行

read  name                   //从键盘输入

echo "hello $name,welcome to my program"     //显示信息

exit 0                       //退出shell程序。

//********************************

由于read命令提供了-p参数,允许在read命令行中直接指定一个提示。

所以上面的脚本可以简写成下面的脚本::

#!/bin/bash

read -p "Enter your name:" name

echo "hello $name, welcome to my program"

exit 0

在上面read后面的变量只有name一个,也可以有多个,这时如果输入多个数据,则第一个数据给第一个变量,第二个数据给第二个变量,如果输入数据个数过多,则最后所有的值都给第一个变量。如果太少输入不会结束。

//*****************************************

在read命令行中也可以不指定变量.如果不指定变量,那么read命令会将接收到的数据放置在环境变量REPLY中。

例如::

read -p "Enter a number"

环境变量REPLY中包含输入的所有数据,可以像使用其他变量一样在shell脚本中使用环境变量REPLY.

2、计时输入.

使用read命令存在着潜在危险。脚本很可能会停下来一直等待用户的输入。如果无论是否输入数据脚本都必须继续执行,那么可以使用-t选项指定一个计时器。

-t选项指定read命令等待输入的秒数。当计时满时,read命令返回一个非零退出状态;

#!/bin/bash

if read -t 5 -p "please enter your name:" name

then

    echo "hello $name ,welcome to my script"

else

    echo "sorry,too slow"

fi

exit 0

除了输入时间计时,还可以设置read命令计数输入的字符。当输入的字符数目达到预定数目时,自动退出,并将输入的数据赋值给变量。

#!/bin/bash

read -n1 -p "Do you want to continue [Y/N]?" answer

case $answer in

Y | y)

      echo "fine ,continue";;

N | n)

      echo "ok,good bye";;

*)

     echo "error choice";;

esac

exit 0

该例子使用了-n选项,后接数值1,指示read命令只要接受到一个字符就退出。只要按下一个字符进行回答,read命令立即

接受输入并将其传给变量。无需按回车键。



3、默读(输入不显示在监视器上)

有时会需要脚本用户输入,但不希望输入的数据显示在监视器上。典型的例子就是输入密码,当然还有很多其他需要隐藏的数据。

-s选项能够使read命令中输入的数据不显示在监视器上(实际上,数据是显示的,只是read命令将文本颜色设置成与背景相同的颜色)。

#!/bin/bash

read  -s  -p "Enter your password:" pass

echo "your password is $pass"

exit 0

4、读文件

最后,还可以使用read命令读取Linux系统上的文件。

每次调用read命令都会读取文件中的"一行"文本。当文件没有可读的行时,read命令将以非零状态退出。

读取文件的关键是如何将文本中的数据传送给read命令。

最常用的方法是对文件使用cat命令并通过管道将结果直接传送给包含read命令的while命令

例子::

#!/bin/bash

count=1    //赋值语句,不加空格

cat test | while read line        //cat 命令的输出作为read命令的输入,read读到的值放在line中

do

   echo "Line $count:$line"

   count=$[ $count + 1 ]          //注意中括号中的空格。

done

echo "finish"

exit 0
分享到:
评论

相关推荐

    shell cat read tee

    本文将详细讲解"shell cat read tee"相关的知识点,包括Linux下的正则表达式、命令的执行顺序、Shell的输入输出以及重定向。 首先,让我们了解一下正则表达式(Regular Expression)。正则表达式是一种模式匹配工具...

    shell学习方法

    ### Shell学习方法详解 #### 一、Shell简介 在计算机科学领域中,Shell是一种非常重要的交互式编程环境,被广泛应用于各种操作系统中,包括Linux、Unix等。Shell通常被称为“壳”,用来区别于操作系统的核心部分...

    shell下同时读取多个文件的方法.docx

    本文介绍了 shell 下同时读取多个文件的方法,包括单个文件的读取和多个文件的读取。通过使用文件重定向和文件描述符,我们可以实现同时读取多个文件的功能。这对于自动化处理多个文件的任务非常有用。

    Shell高级编程实战视频.zip

    3-Shell脚本介绍及第一个规范Shell脚本说明 4-Shell编程的作用和地位 5-Shell语言的种类介绍 6-Shell的条件表达式知识初步介绍实践 7-Shell的字符串表达式介绍-实践及企业案例脚本剖析 8-Shell的整数表达式介绍-实践...

    wscript.shell被禁,执行命令方法

    在IT领域,尤其是在Web开发与安全防护中,“wscript.shell被禁,执行命令方法”这一主题涉及到了一种绕过安全限制、执行系统级命令的技术手段。以下是对这一知识点的详细解析: ### wscript.shell简介 `wscript....

    shell read指令

    ### Shell Read 指令详解:灵活掌握用户输入与文件读取 在Shell脚本编程中,`read`指令是一个非常实用且强大的工具,用于处理用户...熟练掌握`read`的使用方法,将极大地提升你在Shell脚本开发中的效率和代码质量。

    052903shell循环 read case1

    例如,文件中的`for`循环用来遍历列表,如计算1到100的所有整数之和,或者显示每一位用户的默认shell。`for`循环的语法是: ```bash for 变量 in 列表; do 循环体 done ``` 在这个例子中,`列表`可以是具体的数值...

    shell脚本读文件方法和例子

    ### Shell脚本读取文件的方法与实例解析 在日常的系统管理和软件开发过程中,Shell脚本作为一种强大的工具被广泛应用于自动化任务处理、数据处理及系统维护等场景之中。本文将详细探讨Shell脚本中用于读取文件的...

    shell与python文档

    Shell脚本编程知识点介绍: 一、Shell变量定义与使用 Shell编程中,变量用于存储数据,进行数据传递。定义变量时,变量名前不加美元符号,并且等号两边不得有空格。如: ```shell your_name="qinjx" ``` 在调用变量...

    Python调用shell命令常用方法(4种)

    相较于`os.system()`,`os.popen()`提供了更多的灵活性,因为它将Shell命令的输出作为文件对象返回,可以通过调用`read()`或`readlines()`等方法来读取这些输出。这种方式特别适合于需要捕获Shell命令输出的情况。 ...

    LINUX与UNIX Shell

    Shell输入与输出章节则介绍了echo、read、cat、管道、tee等命令以及如何使用重定向来控制标准输入输出流。 命令执行顺序章节则涉及了如何使用逻辑运算符&&和||以及括号()和花括号{}来将多个命令组合在一起,控制...

    shell脚本基础入门 详细介绍完整版

    - 获取用户输入:使用`read`命令可以交互式地获取用户输入。 以上是根据文档整理的Shell脚本基础知识点。学习Shell脚本编程需要不断的练习和调试。编写脚本时应注意脚本的可读性和健壮性,同时,编写脚本后应当进行...

    shell的多线程&当前文件夹下批量插入MySQL

    本文将详细讲解如何在Shell脚本中实现多线程,并结合实例介绍如何批量插入MySQL数据库。 首先,我们需要理解为什么要使用多线程。在处理大量并发任务时,多线程可以并发执行任务,避免串行执行的低效,尤其在需要对...

    shell介绍及编程

    输入输出命令(如echo、read)用于实现用户与Shell脚本的交互。学习基础Shell编程可以帮助用户编写简单的脚本来自动化任务。 五、高级Shell编程技巧 高级Shell编程技巧包括正则表达式的使用、数组、关联数组(也称...

    shell编程高清PDF

    8. **Shell内置命令**:介绍常用的内置命令,如`cd`,`echo`,`test`,`read`,`source`等,以及它们的功能和用法。 9. **脚本调试与优化**:如何使用`set -x`进行脚本调试,以及编写高效、可维护的Shell脚本的最佳...

    4种shell的区别

    - **读取用户输入**:使用`read`命令,如:`read name` 或 `read name?"What's your name?"`(其中引号内为提示信息) - **数组声明与操作**:不支持标准数组操作,通常通过位置参数来模拟。 - **命令替换**:...

    gdb 的使用Shell编程的概念

    在Shell中,使用$变量名定义和引用变量,常见的变量类型有自定义变量、环境变量和参数变量。自定义变量通常是字符串类型,通过`read`命令可以从键盘接收用户输入。环境变量,如$HOME(当前用户的家目录)和$PATH...

    python调用shell命令

    本文将详细介绍如何使用Python来调用Shell命令,并重点介绍`os.popen()`与`os.system()`两种方法的区别及其应用场景。 #### 二、基础知识 1. **Python中的os模块**:`os`是Python的标准库之一,提供了与操作系统...

    SHELL脚本read命令的具体用法

    在Linux Shell脚本编程中,`read`命令是一个非常实用的工具,它允许脚本从标准输入、文件或管道中读取数据,并将其拆分成多个字段分配给预...了解并熟练掌握`read`命令的使用,对于编写功能丰富的Shell脚本至关重要。

    linux Shell编程入门 实例讲解详解

    * 使用Shell命令:使用Unix命令和Shell内部命令,例如echo、ls、wc、cp、mv、rm、grep、cut、cat、file、read、sort等。 五、总结 * Linux Shell编程是Linux系统中一种非常灵活的工具,可以自动化大量的任务,...

Global site tag (gtag.js) - Google Analytics