命令末尾的"</ dev/null>&/ dev/null"是做什么的?

use*_*997 11 linux bash stdio

我在ssh上运行的一个脚本正在挂起,我在这个站点找到了一个解决方案:http: //www.snailbook.com/faq/background-jobs.auto.html

该站点通过将此添加到命令的末尾来解决问题:

xterm < /dev/null >& /dev/null &
Run Code Online (Sandbox Code Playgroud)

我想我知道它的作用是什么,但有人能帮忙解释一下吗?

第一部分:

# For stdin, read from /dev/null
< /dev/null
Run Code Online (Sandbox Code Playgroud)

第二部分:

>& /dev/null
Run Code Online (Sandbox Code Playgroud)

怎么>&办?我已经看到2>&1哪个是直接STDERR到STDOUT,但是当没有数字时,这是否意味着将所有内容重定向到/dev/null

Mic*_*man 12

是的,这意味着将stdout和stderr重定向到/ dev/null.

来自info "(bash)Redirections":

重定向标准输出和标准错误

Bash允许将标准输出(文件描述符1)和标准错误输出(文件描述符2)重定向到名称为WORD扩展的文件.

重定向标准输出和标准错误有两种格式:

&>WORD
Run Code Online (Sandbox Code Playgroud)

>&WORD
Run Code Online (Sandbox Code Playgroud)

在这两种形式中,第一种是优选的.这在语义上等同于

>WORD 2>&1
Run Code Online (Sandbox Code Playgroud)