Я пытаюсь запустить локальную команду оболочки из консоли сценария, и ошибочная кавычка пинает меня в задницу.Вся команда заключена в двойные кавычки, а команда, выполненная из «-c», заключена в одинарные кавычки.Там не опечатка, я клянусь!Есть идеи?Странно то, что это происходит только в том случае, если в одинарных кавычках есть несколько элементов, разделенных пробелами.Если я сделаю один исполняемый файл, такой как 'ls', это будет нормально.
def String target_database = "testdb"
def String version = "7.6.5.4"
def sout = new StringBuffer(), serr = new StringBuffer()
def proc = "sudo su oracle -c '/home/oracle/scripts/datapump/refresh_database.sh ${target_database} ${version}'".execute()
proc.consumeProcessOutput(sout, serr)
proc.waitForOrKill(1000)
println "STDOUT\n $sout"
println "STDERR\n $serr"
STDOUT
STDERR testdb: -c: строка 0: неожиданный EOF при поиске соответствия `'' testdb: -c: строка 1: синтаксическая ошибка: неожиданный конец файла