linux read的第一个参数为什么不使用文件名打开

发布网友 发布时间:2022-04-23 18:18

我来回答

1个回答

热心网友 时间:2023-01-21 22:51

对于写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" 保存为一个命令。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com