首页 > 解决方案 > 在后台运行 mplayer 命令将 &1 替换为 1

问题描述

在后台运行 mplayer 的正式方式。

mplayer some.mkv </dev/null >/dev/null 2>&1 &
[3]9536

[3]9536表示 mplayer 命令的 pid 为 9536。
如果我将上述命令的 &1 替换为 1:

mplayer some.mkv </dev/null >/dev/null 2>1 &
[4] 9590
[3]   Done                    mplayer some.mkv < /dev/null > /dev/null 2> 1

为什么在这里得到额外的输出?

[3]   Done                    mplayer some.mkv < /dev/null > /dev/null 2> 1

标签: bashbackgroundmplayer

解决方案


这与你的改变无关。发生这种情况是因为您之前的mplayer实例同时退出了。这是另一个例子:

$ sleep 1 &
[1] 18155                                   # Sleep #1 started in background
$ sleep 1 &
[2] 18163                                   # Sleep #2 started in background
[1]   Done                    sleep 1       # Sleep #1 finished because it's been a second

替换2>&12>1使 mplayer 状态和错误转到1当前目录中命名的文件。我不知道你为什么会做这样的事情,但 bash 很乐意接受。


推荐阅读