我想从 ruby​​ 脚本执行操作系统命令,但我想从 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)

尼克是对的,但不需要分段组装参数:

directory = '/Volumes/Omg a space/'
system('/bin/ls', directory)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top