0
我有以下Groovy腳本:爲什麼Groovy會執行()掛起?
#!/opt/groovy-1.8.6/bin/groovy
final env = null // []
final command = ["./setter-for-catan.scala"]
final process = command.execute(env, null)
println (['echo', '********************** 0'].execute(env, null).text)
final stdout = process.inputStream
BufferedReader reader = new BufferedReader(new InputStreamReader(stdout))
while ((line = reader.readLine()) != null) {
System.out.println ("Stdout: " + line);
}
和以下的Scala腳本:
#!/bin/bash
export SCALA_HOME=/opt/scala-2.10.1
echo '********************* 1' "$0" "[email protected]"
${SCALA_HOME}/bin/scala -version 2>&1
exec ${SCALA_HOME}/bin/scala "$0" "[email protected]" 2>&1
!#
println("******************* 2")
調用Groovy腳本輸出:
********************** 0
Stdout: ********************* 1 ./setter-for-catan.scala
Stdout: Scala code runner version 2.10.1 -- Copyright 2002-2013, LAMP/EPFL
Stdout: ******************* 2
如果env
被定義爲[]
,所述Groovy腳本掛起以下輸出:
********************** 0
Stdout: ********************* 1 ./setter-for-catan.scala
Stdout: Scala code runner version 2.10.1 -- Copyright 2002-2013, LAMP/EPFL
發生了什麼事情以及需要做什麼以便不會掛起env
是Array
?
你可以運行'strace的-f你的 - 第一腳本「來查看進程掛起時發生了什麼。 –
如果運行'env -i。/ setter-for-catan.scala',會發生什麼情況? –
@EmilSit,也會導致腳本掛起。需要做些什麼來指定它應該繼承環境? –