在一个命令的末尾,“</ dev / null>&/ dev / null”是做什么的?

我通过ssh运行的脚本之一是挂起来,我发现它在这个网站上的解决scheme: http : //www.snailbook.com/faq/background-jobs.auto.html

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

xterm < /dev/null >& /dev/null & 

我想我知道它是做什么的,但是有人可以帮忙解释一下吗?

第一部分:

 # For stdin, read from /dev/null < /dev/null 

第二部分:

 >& /dev/null 

什么是>&做的? 我已经看过2>&1 ,它是直接STDERR到STDOUT,但是当没有数字,这是否意味着将所有的东西都redirect到/dev/null

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

info "(bash)Redirections"

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

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

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

 &>WORD 

 >&WORD 

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

 >WORD 2>&1 

ssh另一种方式(实现你可能想要的)是通过-f标志,即

 ssh -X -f your.host.org xterm 

谷歌搜索'流重定向'&'会让你找到http://tldp.org/LDP/abs/html/io-redirection.html

除其他外,告诉你

  >&j # Redirects, by default, file descriptor 1 (stdout) to j. # All stdout gets sent to file pointed to by j. 

也许这已经有所帮助。

或者搜索标准的unix shell的帮助,比如bash,进行流重定向。

RGDS,

托马斯