|
|
1
4
您没有提到正在使用的操作系统(这很重要)。 在Windows上,无论您在命令行上键入什么,都会在不进行修改的情况下传递给程序。所以如果你打字
然后程序的参数包含
在具有类似shell的Unix和其他系统上,shell
参数展开
它会自动扩展命令行中的通配符。因此,当您在上面键入相同的命令时,
壳
查找中的文件
重要的一点是,脚本无法确定参数扩展是否发生,或者用户是否在命令行上实际键入了所有这些文件名。 |
|
|
2
3
如上所述,在操作系统将命令交给Ruby之前,正在解析命令行。正在将通配符扩展为以空格分隔的文件名列表。
如果你输入类似
击球后 返回 这些名称将添加到argv数组中。OptionParser将遍历argv并找到您定义的标志,必要时获取以下元素,然后将它们从argv中移除。完成OptionParser后,任何不适合选项的argv元素都将保留在argv数组中,您可以从中获取它们。
在代码中,您正在为
将其保存到一个文件中,并尝试使用命令行
因为
如果
|
|
|
3
0
在将参数传递给程序之前,shell正在扩展该参数。要么继续使用文件名,直到找到另一个选项,要么让用户退出通配符(例如
|
|
|
4
0
现在所发生的是shell在Ruby到达通配符之前对它进行了扩展。所以你真的在处理:
加引号
|