欢迎光临散文网 会员登陆 & 注册

Shell 标准输入输出

2023-08-12 07:26 作者:小步2023  | 我要投稿

详情地址:  https://www.xiaobuteach.com/shell/io/io.html?from=bili

Shell 标准输入输出

我们常用的两条输入输出语句

接收输入

read -p "input name:" name

将用户输入的值赋值到变量。

输出

echo $name

输入与输出分别对应的硬件:输入通过键盘,输出到显示器。


3个标准设备

Linux把硬件映射为设备文件,对应一个文件描述符。

项目设备文件文件描述符标准输入(默认键盘)/dev/stdin&0标准输出(默认显示器)/dev/stdout&1标准错误(默认显示器)/dev/stderr&2

输出与错误

命令执行正确的提示结果称为输出;命令执行失败的提示结果称为错误


例1:1条ll语句同时存在输出与错误。

当前文件夹存在文件file1.txt,不存在文件file-error.txt,一条ll命令两个文件。

ll file1.txt file-error.txt

第1条提示为错误,第2条提示为输出

注:两个不同的流处理,没有严格按照顺序显示。


例2:两条echo

echo xiaobu echoooo xiaobu

echo xiaobu的结果称为 输出;echooooo xiaobu 因为命令拼写错误,执行失败的提示结果称为 错误。显然两者都显示到显示器。


输入输出的完整写法

输入

read -p "input name:" name

read命令默认从键盘&0输入。

完整写法:

read -p "input name:" name <&0

<表示输入动作;

&0表示从键盘接收输入;

中间无空格。


输出

echo $name

echo命令默认 标准输出到&1(显示器) 标准错误还是到&2(还是显示器)。

完整写法:

echo $name 1>&1 2>&2

其中空格很少,加了会报错。

>表示输出动作;

1>表示其中的标准输出的内容的处理,&1表示显示器;

2>表示其中标准错误的内容的处理,&2表示显示器。

下一节我们会把&1,&2替换成不同文件,那么就实现:一个文件存正常内容,一个文件存错误内容。


完整内容如下:

read -p "input name:" name <&0 echo $name 1> &1 2>&2

运行效果与不加完全一样。成功。


Shell 标准输入输出的评论 (共 条)

分享到微博请遵守国家法律