为什么JAX shell没有看到全局路径上的命令?

时间:2018-01-11 07:46:57

标签: osascript jxa

当我调用我的脚本然后调用我的shell命令时,我收到一个错误:

  

错误:sh:excel:找不到命令

我在SCPT文件中使用以下代码:

var app = Application.currentApplication();
app.includeStandardAdditions = true;
var test = app.doShellScript('excel');

当我在终端中运行excel时,它看起来很好。为什么shell没有找到命令?

1 个答案:

答案 0 :(得分:0)

听起来像搜索路径问题。它正在打开一个新的Shell实例,并且不会自动导出环境变量,包括搜索路径设置。

(() => {

    // standardAdditions :: () -> Library Object
    const standardAdditions = () =>
        Object.assign(
            Application.currentApplication(), {
                includeStandardAdditions: true
            }
        );

    return standardAdditions().doShellScript('echo $PATH');
})()

在.doShellScript和终端中尝试echo $PATH命令,并查找不同的输出。

两个选项是:

  • 使用export PATH=some/path/or/other:$PATH
  • 这样的行设置所需的路径
  • 在您启动应用时提供应用的完整路径。