es posible concat argumentos para una línea de comandos, utilizando acentos graves ?
-
09-06-2019 - |
Pregunta
Me gustaría ejecutar un comando OS de mi script de ruby, pero quiero añadir un argumento a partir de un rubí variable.
Sé que eso es posible mediante el uso de palabras clave sistema de como que :
#!/usr/bin/env ruby
directory = '/home/paulgreg/'
system 'ls ' + directory
pero es posible mediante el uso de los "acentos graves o comillas simples inclinadas sintaxis" ?(Me refiero por el uso de la sintaxis : ls
)
Solución
No, que va a concatenar sólo la salida de ls
y el contenido de directory
.
Pero usted puede hacer esto:
#!/usr/bin/env ruby
directory = '/home/paulgreg/'
`ls #{directory}`
Otros consejos
`ls #{directory}`
no es muy seguro, porque vas a tener problemas con nombres de ruta de acceso que tienen espacios en ellos.
Es más seguro para hacer algo como esto:
directory = '/home/paulgreg/'
args = []
args << "/bin/ls"
args << directory
system(*args)
Nick es correcto, pero no es necesario montar la args definidas a trozos:
directory = '/Volumes/Omg a space/'
system('/bin/ls', directory)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow