如何从Julia运行外部程序并等到它完成,然后读取它的输出

mrt*_*rtn 4 julia

我正试图从Julia via执行外部程序run,然后等到它完成并将其输出存储到变量中.

我想出的唯一解决方案是:

callback = function(data)
  print(data)
end

open(`minizinc com.mzn com.dzn`) do f
  x = readall(f)
  callback(x)
end
Run Code Online (Sandbox Code Playgroud)

问题是我不想使用回调.

有什么办法,如何等到过程结束然后继续执行?

提前致谢

Ste*_*ski 7

您可以在命令对象上调用readall(或readstring在Julia master上):

julia> readall(`echo Hello`)
"Hello\n"
Run Code Online (Sandbox Code Playgroud)