关键字:获取用户输入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"相关的知识点,包括Linux下的正则表达式、命令的执行顺序、Shell的输入输出以及重定向。 首先,让我们了解一下正则表达式(Regular Expression)。正则表达式是一种模式匹配工具...
### Shell学习方法详解 #### 一、Shell简介 在计算机科学领域中,Shell是一种非常重要的交互式编程环境,被广泛应用于各种操作系统中,包括Linux、Unix等。Shell通常被称为“壳”,用来区别于操作系统的核心部分...
本文介绍了 shell 下同时读取多个文件的方法,包括单个文件的读取和多个文件的读取。通过使用文件重定向和文件描述符,我们可以实现同时读取多个文件的功能。这对于自动化处理多个文件的任务非常有用。
3-Shell脚本介绍及第一个规范Shell脚本说明 4-Shell编程的作用和地位 5-Shell语言的种类介绍 6-Shell的条件表达式知识初步介绍实践 7-Shell的字符串表达式介绍-实践及企业案例脚本剖析 8-Shell的整数表达式介绍-实践...
在IT领域,尤其是在Web开发与安全防护中,“wscript.shell被禁,执行命令方法”这一主题涉及到了一种绕过安全限制、执行系统级命令的技术手段。以下是对这一知识点的详细解析: ### wscript.shell简介 `wscript....
### Shell Read 指令详解:灵活掌握用户输入与文件读取 在Shell脚本编程中,`read`指令是一个非常实用且强大的工具,用于处理用户...熟练掌握`read`的使用方法,将极大地提升你在Shell脚本开发中的效率和代码质量。
例如,文件中的`for`循环用来遍历列表,如计算1到100的所有整数之和,或者显示每一位用户的默认shell。`for`循环的语法是: ```bash for 变量 in 列表; do 循环体 done ``` 在这个例子中,`列表`可以是具体的数值...
### Shell脚本读取文件的方法与实例解析 在日常的系统管理和软件开发过程中,Shell脚本作为一种强大的工具被广泛应用于自动化任务处理、数据处理及系统维护等场景之中。本文将详细探讨Shell脚本中用于读取文件的...
Shell脚本编程知识点介绍: 一、Shell变量定义与使用 Shell编程中,变量用于存储数据,进行数据传递。定义变量时,变量名前不加美元符号,并且等号两边不得有空格。如: ```shell your_name="qinjx" ``` 在调用变量...
相较于`os.system()`,`os.popen()`提供了更多的灵活性,因为它将Shell命令的输出作为文件对象返回,可以通过调用`read()`或`readlines()`等方法来读取这些输出。这种方式特别适合于需要捕获Shell命令输出的情况。 ...
Shell输入与输出章节则介绍了echo、read、cat、管道、tee等命令以及如何使用重定向来控制标准输入输出流。 命令执行顺序章节则涉及了如何使用逻辑运算符&&和||以及括号()和花括号{}来将多个命令组合在一起,控制...
- 获取用户输入:使用`read`命令可以交互式地获取用户输入。 以上是根据文档整理的Shell脚本基础知识点。学习Shell脚本编程需要不断的练习和调试。编写脚本时应注意脚本的可读性和健壮性,同时,编写脚本后应当进行...
本文将详细讲解如何在Shell脚本中实现多线程,并结合实例介绍如何批量插入MySQL数据库。 首先,我们需要理解为什么要使用多线程。在处理大量并发任务时,多线程可以并发执行任务,避免串行执行的低效,尤其在需要对...
输入输出命令(如echo、read)用于实现用户与Shell脚本的交互。学习基础Shell编程可以帮助用户编写简单的脚本来自动化任务。 五、高级Shell编程技巧 高级Shell编程技巧包括正则表达式的使用、数组、关联数组(也称...
8. **Shell内置命令**:介绍常用的内置命令,如`cd`,`echo`,`test`,`read`,`source`等,以及它们的功能和用法。 9. **脚本调试与优化**:如何使用`set -x`进行脚本调试,以及编写高效、可维护的Shell脚本的最佳...
- **读取用户输入**:使用`read`命令,如:`read name` 或 `read name?"What's your name?"`(其中引号内为提示信息) - **数组声明与操作**:不支持标准数组操作,通常通过位置参数来模拟。 - **命令替换**:...
在Shell中,使用$变量名定义和引用变量,常见的变量类型有自定义变量、环境变量和参数变量。自定义变量通常是字符串类型,通过`read`命令可以从键盘接收用户输入。环境变量,如$HOME(当前用户的家目录)和$PATH...
本文将详细介绍如何使用Python来调用Shell命令,并重点介绍`os.popen()`与`os.system()`两种方法的区别及其应用场景。 #### 二、基础知识 1. **Python中的os模块**:`os`是Python的标准库之一,提供了与操作系统...
在Linux Shell脚本编程中,`read`命令是一个非常实用的工具,它允许脚本从标准输入、文件或管道中读取数据,并将其拆分成多个字段分配给预...了解并熟练掌握`read`命令的使用,对于编写功能丰富的Shell脚本至关重要。
* 使用Shell命令:使用Unix命令和Shell内部命令,例如echo、ls、wc、cp、mv、rm、grep、cut、cat、file、read、sort等。 五、总结 * Linux Shell编程是Linux系统中一种非常灵活的工具,可以自动化大量的任务,...