tutorial traduccion peliculas app groovy

peliculas - groovy traduccion



groovy ejecutar con parĂ¡metros que contienen espacios (4)

¿Intentó escapar de los espacios?

println ''ls /tmp/folder/ with/ spaces''.execute().text

¿Cómo proporciono los argumentos que contienen espacios para el método de ejecución de cadenas en Groovy? Solo agregar espacios como uno en un shell no ayuda:

println ''ls "/tmp/folder with spaces"''.execute().text

Esto daría tres argumentos rotos a la llamada ls.


El truco fue usar una lista:

println([''ls'', ''/tmp/folder with spaces''].execute().text)


Lo siento, hombre, ninguno de los trucos anteriores funcionó para mí. Este pedazo de código horrible es lo único que pasó:

def command = ''bash ~my_app/bin/job-runner.sh -n " MyJob today_date=20130202 " '' File file = new File("hello.sh") file.delete() file << ("#!/bin/bash/n") file << (command) def proc = "bash hello.sh".execute() // Call *execute* on the file


Usar una lista me parece un poco torpe.

Esto haría el trabajo:

def exec(act) { def cmd = [] act.split(''"'').each { if (it.trim() != "") { cmd += it.trim(); } } return cmd.execute().text } println exec(''ls "/tmp/folder with spaces"'')

Ejemplo más complejo:

println runme(''mysql "-uroot" "--execute=CREATE DATABASE TESTDB; USE TESTDB; //. test.sql"'');

El único inconveniente es la necesidad de poner comillas alrededor de todos tus argumentos, ¡puedo vivir con eso!