linux的read命令[z]

本文详细介绍了Bash脚本中read命令的用法及示例,包括如何从标准输入读取一行并分配给变量,如何使用不同标志来改变其行为。

From: http://www.linuxsense.org/viewnews-63.html

对于写bash脚本的朋友,read命令是不可或缺的,需要实践一下就可以了解read命令的大致用途:

编写一个脚本:

#!/bin/bash
# hao32 test read
echo -e "Please enter your test :"
read TESTREAD
echo $TESTREAD

试着运行下这个脚本,你就可以大致了解read命令的用法,下面是转载一篇read命令详细的用法,大家参考参考啊,呵呵

作用
从标准输入中读取一行。

语法
read [ -p ][  -r ][ -s ][ -u[ n ] ] [  VariableName?Prompt ]

[ VariableName ... ]

描述
read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量,用 IFS(内部字段分隔符)变量中的字符作为分隔符。VariableName 参数指定 shell 变量的名称,shell 变量获取输入行一个字段的值。由VariableName 参数指定的第一个 shell 变量指定给每一个字段的值,由 VariableName 参数指定的第二个 shell 变量指定给第二个字段的值,以此类推,直到最后一个字段。如果标准输入行的字段比相应的由 VariableName 参数指定的 shell 变量的个数多,把全部余下的字段的值赋给指定的最后的 shell 变量。如果比 shell 变量的个数少,则剩余的 shell 变量被设置为空字符串。


注意: 如果省略了 VariableName 参数,变量 REPLY 用作缺省变量名。
由 read 命令设置的 shell 变量影响当前 shell 执行环境。

标志

-p 用 |& (管道,& 的记号名称)读取由 Korn shell 运行的进程的输出作为输入。

注:-p 标志的文件结束符引起该进程的清除,因此产生另外一个进程。
-r 指定读取命令把一个 \ (反斜杠) 处理为输入行的一部分,而不把它作为一个控制字符。
-s 把输入作为一个命令保存在 Korn shell 的历史记录文件中。
-u [ n ] 读取一位数的文件描述符号码 n 作为输入。文件描述符可以用 ksh exec 内置命令打开。n 的缺省值是 0,表示的是键盘。值 2 表示标准错误。

参数

VariableName?Prompt 指定一个变量的名称和一个要使用的提示符。当 Korn shell 是交互式时,它将把提示符写到标准错误,并执行输入。Prompt 包含多于一个的字,必须用单引号或双引号括起来。
VariableName... 指定一个或多个由空格分隔的变量名。

退出状态
这个命令返回下列出口值:

0 成功完成。
>0 检测到文件结束符或一个错误发生。

示例
下列脚本打印一个文件,这个文件中每行的第一个字段被移动到本行的末尾。

while read -r xx yy
do
         print printf "%s %s/n" $yy $xx
done < InputFile读取一行,把它分成字段,并使用 "Please enter: " 作为提示符,请输入:

read word1?"Please enter:  " word2系统显示:

Please enter:
You enter:
hello world变量 word1 的值应该是 "hello",变量 word2 应该是 "world."

为创建一个共同进程,用 print -p 写到共同进程,并用 read -p 从共同进程中读取输入,请输入:

(read; print "hello $REPLY")
print -p "world"
read-p line变量 line 的值应该是 "hello world."

为把输入行的副本保存为历史文件中的一个命令,请输入:

read -s line < input_file如果输入文件包含 "echo hello world," ,那么在历史记录文件中将会把 "echo hello world" 保存为一个命令。


欢迎转载本文,请注明来自: http://www.linuxsense.org  

 

### 三级标题:Linux中 `read` 命令的使用方法详解及示例 `read` 命令Linux shell 中用于从标准输入(如键盘)读取一行文本并将其赋值给变量的工具。它广泛应用于 shell 脚本中,以实现与用户的交互式输入。以下是 `read` 命令的详细用法和示例。 #### 基本语法 ```bash read [选项] [变量...] ``` #### 常用选项 - `-p`:在读取输入前显示提示信息。 - `-t`:设置等待输入的超时时间(单位为秒)。 - `-n`:指定读取的字符数,不等待换行。 - `-s`:隐藏输入内容(适用于密码输入)。 - `-r`:不将反斜杠视为转义字符。 - `-d`:指定输入结束符,默认为换行符。 #### 示例一:基本输入读取 以下是一个最简单的使用示例,脚本提示用户输入一个网站名称,并将其存储在变量 `website` 中,随后输出该变量内容: ```bash #!/bin/bash echo "enter your website: " read website echo "your website is $website" ``` 执行结果示例: ``` enter your website: www.wirelessqa.com your website is www.wirelessqa.com ``` 该示例展示了如何通过 `read` 命令获取用户输入并将其赋值给变量[^1]。 #### 示例二:使用 `-p` 选项显示提示信息 ```bash read -p "请输入您的用户名: " username echo "欢迎, $username!" ``` 此命令在读取输入前显示提示信息,提升脚本的交互友好性[^1]。 #### 示例三:使用 `-s` 选项隐藏输入内容 ```bash read -s -p "请输入密码: " password echo echo "密码已输入" ``` 该示例适用于需要隐藏用户输入的场景,例如密码输入。 #### 示例四:使用 `-t` 选项设置超时 ```bash read -t 5 -p "请在5秒内输入(y/n): " answer if [ -z "$answer" ]; then echo "超时,未输入" else echo "您的选择是: $answer" fi ``` 该命令在用户未在指定时间内输入时自动继续执行脚本。 #### 示例五:使用 `-n` 选项限制输入字符数 ```bash read -n 3 -p "请输入三位数: " number echo echo "您输入的是: $number" ``` 该命令仅读取指定数量的字符,不等待换行。 #### 示例六:使用 `-r` 选项禁用转义字符 ```bash read -r -p "请输入包含反斜杠的路径: " path echo "您输入的路径是: $path" ``` 该命令确保输入中的反斜杠不会被解释为转义字符。 #### 示例七:使用 `-d` 选项指定输入结束符 ```bash read -d '#' -p "请输入内容,以#结束: " input echo echo "您输入的内容是: $input" ``` 该命令使用 `#` 作为输入结束符,而非默认的换行符。 #### 示例八:将输入拆分到多个变量 ```bash read -p "请输入姓名和年龄(用空格分隔): " name age echo "姓名: $name, 年龄: $age" ``` 当输入为 `"Alice 30"` 时,`name` 变量将包含 `"Alice"`,而 `age` 变量将包含 `"30"`。如果字段数量多于变量数量,则多余字段将全部分配给最后一个变量;如果变量数量多于字段数量,则多余的变量将被赋值为空[^3]。 ### 三级标题:相关问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值