我在bash脚本中使用以下内容:
command >> /var/log/somelog.log 2>&1&
我之所以这样做,是因为我希望捕获/var/log/somelog.log
中的所有输出。
这很好用。 然而它不会等到命令完成。因此,我想问一下,如何在command
和中捕获/var/log/somelog.log
的所有输出,而不是在command
完成之前继续使用bash脚本?< / p>
答案 0 :(得分:1)
请忽略最后的&号&
,例如
command >> /var/log/somelog.log 2>&1
如果命令由控制操作符'&amp;'终止,则shell在子shell中异步执行命令。这称为在后台执行命令。 shell不等待命令完成,返回状态为0(true)。
答案 1 :(得分:0)
不要将命令放在后台。
最后一个&
字符表示&#34;在后台运行此命令,同时立即给我一个新的shell提示符。&#34;
command >> /var/log/somelog.log 2>&1&
^ this one
从命令中取出最后一个字符,命令将在前台运行直到完成。
这是坦率的介绍性的东西。您是否考虑过阅读有关使用shell的任何文档?