Macos 与shell扩展抗争

Macos 与shell扩展抗争,macos,shell,netlogo,Macos,Shell,Netlogo,有一点背景知识,我正在使用Hubnet开发一个带有Netlogo的严肃游戏(~参与式模拟)。我希望动态链接NetLogo与外部模型,以便玩家能够: 1) 从hubnet客户端界面运行外部程序(即模型),将参数指定为输入,然后 2) 可以访问模拟结果(即,将模型输出作为外部文件读取) 我发现这篇文章: 因此,我下载/安装了带有NetLogo 5.0.5(Mac OsX 10.7.5)的shell扩展,并开始使用它 好东西,我能够执行: 观察者>外壳:cd“路径” 观察者>外壳:pwd obser

有一点背景知识,我正在使用Hubnet开发一个带有Netlogo的严肃游戏(~参与式模拟)。我希望动态链接NetLogo与外部模型,以便玩家能够: 1) 从hubnet客户端界面运行外部程序(即模型),将参数指定为输入,然后 2) 可以访问模拟结果(即,将模型输出作为外部文件读取)

我发现这篇文章:

因此,我下载/安装了带有NetLogo 5.0.5(Mac OsX 10.7.5)的shell扩展,并开始使用它

好东西,我能够执行:

观察者>外壳:cd“路径”

观察者>外壳:pwd

observer>shell:exec“ls”(以及所有不需要输入参数的命令,如shell:exec“cal”、shell:exec“df”…)

现在糟糕的事情

1) 我始终无法使用以下命令启动任何随机应用程序: observer>shell:exec“Safari.app” 或 observer>shell:exec“Safari”(->错误)

我的工作目录正确,Safari(或我正在尝试启动的其他应用程序)实际存在,但NetLogo返回以下错误:

扩展名异常:无法运行程序“Safari”(在目录“/应用程序”中):错误=2,没有这样的文件或目录 观察器运行SHELL:EXEC时出错 由指挥中心呼叫

2) 我也在努力执行带参数的shell命令(例如,shell:exec“open”“parameter 1”“parameter 2”…)。我无法找到正确的语法,因此NetLogo无法识别我试图传递给命令的输入参数

我在Unix方面的经验非常有限,而且我是NetLogo的相对初学者,所以我肯定在某些地方遗漏了一些东西

如果有人能帮我度过难关,我将不胜感激

非常感谢


Clément

是OSX,您必须使用
open
打开
.app
文件。正如您所指出的,您必须为程序分离参数。所以

(shell:exec“open”“/Applications/Safari.app”)

你应该做你想做的

以下是具有多个参数的实际可执行文件的示例:

(shell:exec“ls”“-l”“-t”)

最后,请注意,
shell:exec
是一个报告程序。它以字符串形式返回程序的输出