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

在shell中,什么是“;2>&;一,”;?,shell,sh,Shell,Sh,我知道2>&1将stout和sterr发送到一个文件中。但是&到底意味着什么呢 2>&1 & # ^ this one 它告诉bash在后台运行作业,并将交互终端返回给用户(另请参见)。您可以通过输入 fg 如果要从单个命令行语句在后台运行多个命令,则需要将它们封装在括号中,例如 (cmd1 &); (cmd2 &); 如果要将多个命令作为一个后台进程一起执行,可以使用大括号将它们分组: ({ subcmd11; subcmd12; } &

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

2>&1 &
#    ^ this one

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

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

(cmd1 &); (cmd2 &);
如果要将多个命令作为一个后台进程一起执行,可以使用大括号将它们分组:

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

请注意,大括号后面需要有一个空格,大括号内的命令列表必须以分号结尾(普通括号没有这些限制,但它们会创建一个额外的子shell)。有关这两种分组样式的详细概述,请选中此项。

此链接不起作用,但可以,谢谢。我还有一个问题,我正在尝试在一个shell脚本中运行多个这样的命令。但是它抱怨在&?之后分号的语法错误?不可能吗?好的例子:set-e;sudo服务nginx启动;QUEUE=*bundle exec rake环境resque:work>>/home/jobs/log/resque.log 2>&1&;rake resque:scheduler>>/home/jobs/log/resque-scheduler.log 2>&1&