我在这里阅读 Rubysystem
方法的文档。如果我输入选项(指定下载目录),这算作一个参数还是两个参数,还是两者之一?-P /public/google
问问题
314 次
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 会看到它并将其拆分为-P
and /public/google
(如果您使用过参数,即使在 ruby 中,shell 也会将它们作为单独的参数传递给脚本)。
于 2012-11-13T21:21:41.557 回答