当我调用我的脚本然后调用我的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
的行设置所需的路径,或者只是 - 在启动应用时提供应用的完整路径。