Linux read命令介绍
read命令是处理从键盘或其它输入设备读入字符的一个简单命令。常见用法就是在shell脚本中用来读取用户的输入。除此之外,也可以从文件中读取内容或处理由其它命令输出的内容。
Linux read命令适用的Linux版本
read命令在所有主流的Linux发行版中,如Ubuntu、Debian、Fedora、Red Hat、CentOS等,都已默认安装。
Linux read命令的基本语法
语法格式:
read [ -options ] [ 赋值变量名 ]
Linux read命令的常用选项或参数说明
选项 | 说明 |
---|---|
-p | 提示信息 |
-t | 等待时间 |
-n | 输入字符数 |
-s | 静默模式 |
Linux read命令实例详解
实例1 - 读取变量
不添加任何参数的情况下,read的默认行为是读取一个变量。我们将演示如何将用户输入分配给一个变量。
[linux@bashcommandnotfound.cn ~]$ read var1
# 请求输入
[linux@bashcommandnotfound.cn ~]$ echo $var1
# 输出输入的内容
实例2 - 一次读取多个变量
read命令不仅可以读取单个变量,还可以读取并分配多个变量。当你一次性输入多个值时,这个功能就显得十分有用。
[linux@bashcommandnotfound.cn ~]$ read var1 var2 var3
# 请求输入
[linux@bashcommandnotfound.cn ~]$ echo $var1 $var2 $var3
# 输出输入的内容
实例3 - 使用-p选项提供提示
在某些时候,你可能想在请求用户输入数据之前提供一些提示或指示。 可以使用-p选项来实现这个需求。
[linux@bashcommandnotfound.cn ~]$ read -p "Enter your name: " name
# 输出提示并请求输入
[linux@bashcommandnotfound.cn ~]$ echo Hello, $name!
# 输出提示
实例4 - 读取并显示文件内容
我们可以使用read
命令读取并显示文件内容,将文件的每一行作为输入。
[linux@bashcommandnotfound.cn ~]$ while IFS= read -r line; do echo "$line"; done < file.txt
# 输出文件内容
这个例子使用while
循环和read
命令一行一行地读取file.txt
文件的内容。然后使用echo
命令输出每一行。
实例5 - 使用-t选项设置超时
在一些脚本中,你可能希望在指定的时间内等待用户的输入,超过这个时间就停止等待。read
命令提供了一个-t
选项可以实现这个需求。
[linux@bashcommandnotfound.cn ~]$ if read -t 10 -sp "Enter secret passcode within 10 seconds: " secret; thenecho -e "\nGot it!"elseecho -e "\nYou took too long!"fi
# 输出提示,并设置10秒的输入超时时间
这个实例中,我们设置了10秒的超时时间。用户如果在10秒内输入,则显示"Got it!“,否则显示"You took too long!”。
实例6 - 使用-a选项读取到数组中
有时候我们希望一次读取多个值并将它们放入数组中,可以使用-a
选项来实现这个需求。
[linux@bashcommandnotfound.cn ~]$ read -a array
# 请求输入
[linux@bashcommandnotfound.cn ~]$ echo ${array[0]} ${array[1]} ${array[2]}
# 输出输入的内容
这个例子中,read
命令将所有输入的单词存储在一个数组中,然后我们可以通过索引号分别来访问它们。
Linux read命令的注意事项
- 如果在 read 命令执行时没有任何输入,那么 read 命令将等待并占用Shell,除非向Shell传递退出信号(ctr+c)
- 常见错误信息 bash: read: command not found, 此时需要进行上面的安装步骤,此处不再赘述。
Linux read相关命令
- echo命令:用来在终端输出文本或变量
- cat命令:用于合并、复制、创建、查看文件
- printf命令:格式化并输出结果
- set命令:设置并显示环境变量