为什么 JAX 外壳看不到全局路径上的命令



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

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

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

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

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

听起来像是一个搜索路径问题。它正在打开一个新的 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 的行设置所需的路径,或者只是
  • 在启动应用时提供应用的完整路径。

最新更新