è possibile concat argomenti da riga di comando utilizzando l'apice inverso ?
-
09-06-2019 - |
Domanda
Vorrei eseguire un sistema operativo di comando dal mio script ruby, ma voglio aggiungere un argomento da un rubino variabile.
So che è possibile, mediante l'utilizzo di parole chiave sistema come che :
#!/usr/bin/env ruby
directory = '/home/paulgreg/'
system 'ls ' + directory
ma è possibile che utilizzando il "virgolette semplici o gli apici inversi sintassi" ?(Voglio dire, utilizzando la sintassi : ls
)
Soluzione
No, sarà solo concatenare l'uscita dal ls
e il contenuto di directory
.
Ma si può fare questo:
#!/usr/bin/env ruby
directory = '/home/paulgreg/'
`ls #{directory}`
Altri suggerimenti
`ls #{directory}`
non è molto sicuro, perché si sta andando a correre in problemi con i nomi di percorso che contengono spazi.
È più sicuro fare qualcosa di simile a questo:
directory = '/home/paulgreg/'
args = []
args << "/bin/ls"
args << directory
system(*args)
Nick è giusto, ma non c'è bisogno di montare il args a tratti:
directory = '/Volumes/Omg a space/'
system('/bin/ls', directory)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow