首页 > 试题广场 >

在bash中,在一条命令后加入“1&2”的意义是

[单选题]
在bash中,在一条命令后加入“1>&2”的意义是
  • 标准错误输出重定向到标准输入
  • 标准输入重定向到标准错误输出
  • 标准输出重定向到标准错误输出
  • 标准输出重定向到标准输入
0:标准输入
1:标准输出
2:标准错误输出
">"表示重定向,&2表示标准错误输出的通道, 所以1>&2表示标准输出重定向到标准错误输出通道
而1>2表示标准输出重定向到文件名为2的文件中。
发表于 2017-02-20 13:14:29 回复(0)
首先,bash中0,1,2三个数字分别代表STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO,即标准输入(一般是键盘),标准输出(一般是显示屏,准确的说是用户终端控制台),标准错误(出错信息输出)。
输入输出可以重定向,所谓重定向输入就是在命令中指定具体的输入来源,譬如 cat < test.c 将test.c重定向为cat命令的输入源。输出重定向是指定具体的输出目标以替换默认的标准输出,譬如ls > 1.txt将ls的结果从标准输出重定向为1.txt文本。有时候会看到如 ls >> 1.txt这类的写法,> 和 >> 的区别在于:> 用于新建而>>用于追加。即ls > 1.txt会新建一个1.txt文件并且将ls的内容输出到新建的1.txt中,而ls >> 1.txt则用在1.txt已经存在,而我们只是想将ls的内容追加到1.txt文本中的时候。
&就是为了让bash将2解释成标准错误而不是文件2。
发表于 2017-06-06 09:27:58 回复(0)
0:标准输入
1:标准输出
2:标准错误输出
">"表示重定向,&2表示标准错误输出的通道, 所以1>&2表示标准输出重定向到标准错误输出通道 ;
而1>2表示标准输出重定向到文件名为2的文件中。
发表于 2017-04-06 21:12:39 回复(0)
0:标准输入
1:标准输出
2:标准错误输出
">"表示重定向,&2表示标准错误输出的通道, 所以1>&2表示标准输出重定向到标准错误输出通道 
而1>2表示标准输出重定向到文件名为2的文件中。
发表于 2022-04-30 13:58:01 回复(0)
0:标准输入
1:标准输出
2:标准错误输出
">"表示重定向,&2表示标准错误输出的通道, 所以1>&2表示标准输出重定向到标准错误输出通道
而1>2表示标准输出重定向到文件名为2的文件中。
发表于 2021-10-16 16:32:25 回复(0)
在bash中,每个进程都有三个默认的文件描述符:标准输入(stdin,文件描述符为0)、标准输出(stdout,文件描述符为1)和标准错误输出(stderr,文件描述符为2)。

当我们在命令行中执行一个命令时,默认情况下,命令的输出将被发送到标准输出流(stdout)。如果我们想将输出发送到标准错误输出流(stderr),我们可以使用重定向操作符">"将标准输出重定向到标准错误输出,即"1>&2"。

例如,假设我们有一个名为"example.sh"的脚本文件,其中包含以下内容:

```
echo "This is a normal output"
echo "This is an error" 1>&2
```

当我们运行这个脚本时,第一行的输出将被发送到标准输出流,而第二行的输出将被重定向到标准错误输出流。因此,我们可以通过以下方式运行脚本来查看输出:

```
$ bash example.sh
This is a normal output
This is an error
```

通过将标准输出重定向到标准错误输出,我们可以将错误消息与正常输出分开,从而更容易地识别和处理错误。这对于调试和日志记录非常有用。
发表于 2023-09-14 19:12:52 回复(0)
0:标准输入
1:标准输出
2:标准错误输出。“>”表示重定向,&2表示标准错误输出的通道,所以1>&2表示标准输出重定向到标准错误输出通道;而1>2表示标准输出重定向到文件名为2的文件中。
编辑于 2023-12-29 14:29:48 回复(0)
首先,bash中0,1,2三个数字分别代表STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO,即标准输入(一般是键盘),标准输出(一般是显示屏,准确的说是用户终端控制台),标准错误(出错信息输出)。 输入输出可以重定向,所谓重定向输入就是在命令中指定具体的输入来源,譬如 cat < test.c 将test.c重定向为cat命令的输入源。输出重定向是指定具体的输出目标以替换默认的标准输出,譬如ls > 1.txt将ls的结果从标准输出重定向为1.txt文本。有时候会看到如 ls >> 1.txt这类的写法,> 和 >> 的区别在于:> 用于新建而>>于追加。即ls > 1.txt会新建一个1.txt文件并且将ls的内容输出到新建的1.txt中,而ls >> 1.txt则用在1.txt已经存在,而我们只是想将ls的内容追加到1.txt文本中的时候。 &就是为了让bash将2解释成标准错误而不是文件2。
发表于 2022-11-25 22:05:28 回复(0)
用排除法只能选c,我眼瞎了
发表于 2022-03-28 21:29:33 回复(0)
知识太多,晕晕的
发表于 2017-03-14 16:52:03 回复(0)
0:标准输入
1:标准输出
2:标准错误输出
">"表示重定向,&2表示标准错误输出的通道, 所以1>&2表示标准输出重定向到标准错误输出通道 ;
而1>2表示标准输出重定向到文件名为2的文件中。
发表于 2017-03-07 18:19:03 回复(0)