虽然这行在我的linux盒子上的windows上正常工作,但它返回退出代码1。
"gnuplot -e \"set output '${imageFile.toString()}'; filename='${dataFile.toString()}'; ${args}\" \"${plotFile.toString()}\"".execute()
但是,如果我从终端执行此操作一切正常。
gnuplot -e "set output '/tmp/hrp-current.jpg'; filename='/tmp/a731265b-3736-4bb9-acf4-b92c1a09b999.csv'; " "/tmp/hrp/build/groovy/../gnuplot/hrp-current.gnuplot"
我在这里缺少什么?它在某种程度上与gnuplot写入文件的事实有关,因为`some_command> some.file"在退出代码1的Linux上也会失败,而它在Windows上运行正常。
答案 0 :(得分:1)
.execute()
只是在空格上分割。您也不需要引用params来执行(您需要为shell执行此操作)。因此,执行一个params列表:
["gnuplot", "-e", "set output '${imageFile.toString()}'; filename='${dataFile.toString()}'; ${args}", plotFile.toString()].execute()
答案 1 :(得分:0)
确实是一些文件写入问题所以我需要gnuplot将其outout传递给stdout然后从我的groovy脚本中使用它来读取输出流然后将其保存到文件中:
def out = new ByteArrayOutputStream()
def err = new ByteArrayOutputStream()
process.waitForProcessOutput(out, err)