问题 命令末尾的“&/ dev / null”是做什么的?


我在ssh上运行的一个脚本是挂起的,我在这个站点找到了一个解决方案: 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,但是当没有数字时,这是否意味着将所有内容重定向到 /dev/null


11991
2017-11-21 06:25


起源

是这个脚本的任何窗口? - MOB


答案:


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

info "(bash)Redirections"

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

Bash允许标准输出(文件描述符1)和   要重定向到文件的标准错误输出(文件描述符2)   它的名字是用这个结构扩展WORD。

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

&>WORD

>&WORD

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

>WORD 2>&1

12
2017-11-21 06:29



哇,那很快 - 谢谢! - user215997
但是什么是/ dev / null?我猜它是将所有输出重定向为空(没有文件)? - 1.21 gigawatts


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

ssh -X -f your.host.org xterm

1
2017-11-21 06:32





谷歌搜索'流重定向>&'将让你找到 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,

托马斯


0
2017-11-21 06:38