我在bash脚本中使用以下内容:
command >> /var/log/somelog.log 2>&1&
我之所以这么做是因为我想捕获/var/log/somelog.log中的所有输出。
这很管用。但是,它不会等到命令完成。所以这就引出了一个问题,如何捕获command/var/log/somelog.log的所有输出,并且在command完成之前不让bash脚本继续?

最佳答案

不要把命令放在后台。
最后一个&字符表示“在后台运行此命令,同时立即给我一个新的shell提示。”

command >> /var/log/somelog.log 2>&1&
                                    ^ this one

只要去掉命令的最后一个字符,命令就会在前台运行,直到完成。
坦率地说,这是很有介绍性的东西。你考虑过阅读任何关于使用shell的文档吗?

关于linux - 如何在bash中运行命令以捕获输出并等待命令完成?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40363610/

10-14 19:26
查看更多