【问题标题】:What does "< /dev/null >& /dev/null" at the end of a command do?命令末尾的“< /dev/null >& /dev/null”有什么作用?
【发布时间】:2011-11-21 06:25:15
【问题描述】:

我在 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

&gt;&amp; 是做什么的?我见过2&gt;&amp;1,它是直接将STDERR 指向STDOUT,但是当没有数字时,这是否意味着将所有内容重定向到/dev/null

【问题讨论】:

  • 是否有任何窗口与此脚本相同?

标签: linux bash stdio


【解决方案1】:

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

来自info "(bash)Redirections"

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

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

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

&>WORD

>&WORD

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

>WORD 2>&1

【讨论】:

  • 但是 /dev/null 是什么?我猜它会将所有输出重定向到任何内容(没有文件)?
【解决方案2】:

使用ssh 另一种方法(实现您可能想要的)是传递-f 标志,即

ssh -X -f your.host.org xterm

【讨论】:

    【解决方案3】:

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

    托马斯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-03
      • 2012-05-17
      • 2013-11-26
      • 2016-05-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多