0

我在这里阅读 Rubysystem方法的文档。如果我输入选项(指定下载目录),这算作一个参数还是两个参数,还是两者之一?-P /public/google

4

2 回答 2

3

这实际上取决于您使用哪种形式的系统。如果你传递一个命令字符串,ala:

system 'somecmd -P /public/google'

命令字符串将通过 shell 进行解释,shell 将对其进行解析,对空格进行标记,从而为 somecmd 提供两个参数。同样,如果您使用参数列表形式并将字符串分解为空格分隔的标记,例如:

system 'somecmd', '-P', '/public/google'
system *%w{ somecmd -P /public/google }

但是,如果您使用参数列表形式,并将-P /public/google其作为单个参数发送,它将在 somecmd 中显示为带有嵌入空格的单个参数:

system 'somecmd', '-P /public/google'
于 2012-11-13T23:32:30.443 回答
1

它算作两个。由于两者之间有一个空格,shell 会看到它并将其拆分为-Pand /public/google(如果您使用过参数,即使在 ruby​​ 中,shell 也会将它们作为单独的参数传递给脚本)。

于 2012-11-13T21:21:41.557 回答