, если только вы не знаете, каким может быть необработанный вывод /usr/libexec/PlistBuddy
, трудно сказать, как заключить скобки, чтобы обеспечить синтаксический смысл.
println([
"mdfind",
"/usr/libexec/PlistBuddy",
"-c 'Print RawQuery'",
"${filename}"
].execute().text)
См. Документацию Groovy по Управление процессами - разбиение оператора на два оператора может дать некоторую подсказку, почему оно не работает должным образом - хотя можно все же сформулировать его в виде однострочного оператора, как только обе части вернут желаемые результаты,можно также .waitFor()
обработать завершение перед выводом захваченного текста;там также доступен оператор |
, но не в массивах команд / параметров []
в скобках ... потому что у меня сложилось впечатление, что он, скорее всего, должен выглядеть примерно так:
def p = "mdfind".execute() | [
"/usr/libexec/PlistBuddy",
"-c 'Print RawQuery'",
"${filename}"
].execute()
p.waitFor()
println p.text
Я бы рассмотрел самую простую формулировку: ["mdfind", "-name ${filename}"].execute()