在shell中,什么是“2>& 1&”?

时间:2014-02-24 06:56:58

标签: shell sh

我知道2>& 1将stdout和stderr发送到一个文件。但是&到底意味着什么呢?

2>&1 &
#    ^ this one

1 个答案:

答案 0 :(得分:2)

它告诉bash在后台运行作业,将交互式终端返回给用户(另请参阅here)。您可以输入

将作业恢复到前台
fg

如果要从单个命令行语句在后台运行多个命令,则需要将它们封装在括号中,例如。

(cmd1 &); (cmd2 &);

如果您想将多个命令作为一个后台进程一起执行,可以使用大括号对其进行分组:

({ subcmd11; subcmd12; } &); ( { subcmd21; subcmd22; } &);

请注意,大括号后面必须跟一个空格,并且大括号内的命令列表必须以分号结束(常规括号没有这些限制,但它们会创建一个额外的子shell)。有关两种分组样式的详细概述,请查看此reference