我尝试使用参数运行自己的控制台应用。该应用程序使用快速语言编写,需要一个外部参数才能工作。在代码中我以这种方式得到第一个参数:Process.arguments[1]
(0参数 - 应用程序的路径)。
从终端I' m运行操作:open MyApp --args test_argument
但它不起作用。我不知道为什么。当我对这个参数进行硬编码时,一切正常,但是当我试图从外面获取它时,它不是......
有人知道我做错了什么吗?也许我以错误的方式传递参数?或者得到不正确?谢谢。
答案 0 :(得分:2)
Process.arguments[1]
对于访问第一个参数是正确的,但要小心,因为如果你没有传递任何参数,这会因致命错误:数组索引超出范围而崩溃。在访问Process.arguments.count > 1
之前,您应首先检查以确保Process.arguments[1]
。
您的问题是您运行应用的方式。您只需指定应用程序名称后跟任何参数:
MyApp test_argument
如果MyApp
不在您的$PATH
或当前目录中,则无法找到它。您可以修改~/.bash_profile
以添加$PATH
的其他路径。每次打开新终端时都会执行(源)此文件。要在刚编辑完成后执行它,请键入. ~/.bash_profile
。
例如,如果您将应用保留在~/Documents
目录中,请修改~/.bash_profile
并添加以下行:
export PATH=$PATH:~/Documents