Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Groovy中执行shell命令并获取返回代码$?_Shell_Groovy_Return Value - Fatal编程技术网

如何在Groovy中执行shell命令并获取返回代码$?

如何在Groovy中执行shell命令并获取返回代码$?,shell,groovy,return-value,Shell,Groovy,Return Value,我无法从Groovy中执行shell脚本获得返回代码(不是输出或错误) 不管我怎么做,它要么让我逃跑,要么只是打印$?而不是给我1或0 groovy:75:美元符号后的非法字符串体字符; 解决方案:在第75行第24列转义字面美元符号“\$5”或将值表达式“${5}”括起来 以下是我尝试过的解决方案,都不起作用 println "../src/check_job_log.s ${it}.log".execute().text println "Check log ${it}.log complet

我无法从Groovy中执行shell脚本获得返回代码(不是输出或错误)

不管我怎么做,它要么让我逃跑,要么只是打印$?而不是给我1或0

groovy:75:美元符号后的非法字符串体字符; 解决方案:在第75行第24列转义字面美元符号“\$5”或将值表达式“${5}”括起来

以下是我尝试过的解决方案,都不起作用

println "../src/check_job_log.s ${it}.log".execute().text
println "Check log ${it}.log completed"

//assert ("echo \$?".execute().text == "1")
//output = """echo $?""".execute().text
println(['echo', '$?'].execute().text)

// below is code for  @that other guy
//def process = "echo hello world".execute()
def process = "../src/check_job_log.s ${it}.log".execute()
print "Output: " + process.text
print "Exit code: " + process.exitValue()

Output: Exit code: 01

使用
Process.exitValue()
代替(或添加)
。text

def process = "echo hello world".execute()
print "Output: " + process.text
print "Exit code: " + process.exitValue()

为什么这些命令有不同的输出

$../src/check_job_log.s dml_ucd_test.sql.log
/iiss/prod/sql>
$echo $?
1
/iiss/prod/sql>
$../src/check_job_log.s dml_ucd_test.sql.log | echo $?
0
ops@uaiisst3:/iiss/prod/sql>
$

$ksh../src/check_job_log.s sb_sp_get_ucd_test.sql.log$echo$?0您的代码输出为:输出:退出代码:01。但是从上面可以看到,命令行的输出是:0。为什么01和0不同?我的代码的输出应该是
output:hello world
退出代码:0
。你还有别的什么吗?我用我的代码替换你的hello world,没有正确的输出,但是退出代码(01)与我从命令行运行相同的脚本(0)不同。我还测试了你的代码,退出代码是01,不是0。