我知道2>& 1将stdout和stderr发送到一个文件。但是&
到底意味着什么呢?
2>&1 &
# ^ this one
答案 0 :(得分:2)
它告诉bash在后台运行作业,将交互式终端返回给用户(另请参阅here)。您可以输入
将作业恢复到前台fg
如果要从单个命令行语句在后台运行多个命令,则需要将它们封装在括号中,例如。
(cmd1 &); (cmd2 &);
如果您想将多个命令作为一个后台进程一起执行,可以使用大括号对其进行分组:
({ subcmd11; subcmd12; } &); ( { subcmd21; subcmd22; } &);
请注意,大括号后面必须跟一个空格,并且大括号内的命令列表必须以分号结束(常规括号没有这些限制,但它们会创建一个额外的子shell)。有关两种分组样式的详细概述,请查看此reference。