我想从我的ruby脚本执行OS命令,但我想从ruby变量中添加一个参数.
我知道可以使用这样的关键字系统:
#!/usr/bin/env ruby directory = '/home/paulgreg/' system 'ls ' + directory
但这可能是通过使用"反引号或反引号语法"吗?(我的意思是通过使用语法:ls
)
不,这只会连接输出ls
和内容directory
.
但你可以这样做:
#!/usr/bin/env ruby directory = '/home/paulgreg/' `ls #{directory}`
`ls #{directory}`
是不是很安全,因为你将遇到包含空格的路径名的问题.
做这样的事更安全:
directory = '/home/paulgreg/' args = [] args << "/bin/ls" args << directory system(*args)