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)

¿Fue útil?

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
scroll top