OS X. 如何使用参数运行控制台应用程序?

3
我正在尝试使用参数运行自己的控制台应用程序。该应用程序是用Swift语言编写的,需要一个来自外部的参数来工作。在代码中,我以这种方式获取第一个参数:Process.arguments[1](0个参数 - 应用程序路径)。
从终端运行操作:open MyApp --args test_argument 但它不起作用。我不知道为什么。当我将此参数硬编码时,一切正常,但是当我尝试从外部获取它时,就不是这样了...
有人知道我做错了什么吗?也许我传递参数的方式不对?或者获取方法不正确?谢谢。

1
Process.arguments[1] 是获取第一个参数的正确方法,但如果您没有传递任何参数,这将导致数组索引超出范围而崩溃。尝试删除 open 并将其作为 MyApp test_argument 运行。 - vacawama
@vacawama 我遇到了“-bash:MyApp:命令未找到”的问题。 - Vasyl Khmil
1
你需要提供应用程序的路径。如果它在当前目录中,使用"./MyApp test_argument"。 - vacawama
@vacawama 谢谢,太棒了。它起作用了。我认为如果我已经在目录中,我不需要再次提供应用程序的路径。 - Vasyl Khmil
1个回答

2

Process.arguments[1]是访问第一个参数的正确方法,但是如果您没有传递任何参数,这将导致致命错误:数组索引超出范围。在访问Process.arguments[1]之前,您应该首先检查确保Process.arguments.count > 1

您的问题在于如何运行您的应用程序。您只需要指定应用程序名称,后跟任何参数即可:

MyApp test_argument

如果您的 MyApp 不在您的 $PATH 中或当前目录中,它将无法被找到。您可以编辑 ~/.bash_profile 文件,在其中添加一个额外的路径到 $PATH 中。每次打开新终端时,该文件都会被执行(sourced)。如果您刚刚编辑了该文件并想要执行它,请键入 . ~/.bash_profile
例如,如果您将应用程序保存在您的 ~/Documents 目录中,请编辑 ~/.bash_profile 文件并添加此行:
export PATH=$PATH:~/Documents

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接