我有一个命令需要执行三遍。它生成大量输出到标准输出,大约需要一分钟。三个命令完成后,应该执行第四个(不同的)命令。shell 脚本如下所示:
#!/bin/sh
command arg1 arg2
command arg1 arg2
command arg1 arg2
something_else
我正在考虑child_process.exec()
在循环中使用,但它会缓冲标准输出直到它完成(对吗?)。我需要立即向用户提供反馈,因此将标准输出缓冲一秒钟以上并不是一个好主意。所以我需要使用child_process.spawn()
,但异步处理让我有点发疯。我正在考虑将 spawn 调用放在这样的函数中:
fucnction myfunc(runs) {
if (runs >= 1) {
myproc = spawn(...)
myproc.on('exit',function() { myfunc(runs - 1) })
}
}
我认为这会起作用。但是有更好的方法吗?我在unix,也许是windows系统。