【发布时间】:2020-06-12 06:16:26
【问题描述】:
我目前正在尝试通过 bash 脚本(在 cronjob 上)以编程方式运行 npx eleventy 函数
我已经在我的终端上试过了,效果很好,运行了这样的命令
cd /Users/me/Desktop/test-folder/public && /usr/local/bin/npx eleventy
还检查了以下内容
npm -v - 6.14.5
和
npx -v - 6.14.5
运行 which npm 返回 /usr/local/bin/npm 和
运行which npx 返回/usr/local/bin/npx
但是,在 bash 脚本中运行以下命令(如下)不起作用...
test.bash
cd /Users/me/Desktop/test-folder/public && /usr/local/bin/npx eleventy
cd /Users/me/Desktop/test-folder/public && /usr/local/bin/npx -v
cd /Users/me/Desktop/test-folder/public && /usr/local/bin/npm -v
抛出以下错误:env: node: No such file or directory。
但是,我似乎在运行以下命令时确实有节点,
cd /Users/me/Desktop/test-folder/public && /usr/local/bin/node -v
返回v12.16.1
请寻求帮助!
编辑:
我的定时任务
* * * * * bash /Users/me/Desktop/test.bash >> /Users/me/Desktop/testvimbackup.log 2>&1
echo PATH=$PATH 1>&2的输出:
PATH=/usr/bin:/bin
【问题讨论】:
-
将您的 cronjob 添加到您的问题中(无评论)。
-
添加了我的 cronjob!
-
由于消息说'env:节点:没有这样的文件或目录',我会得出结论,错误来自
#!/usr/local/bin/env node的执行,它在turn 意味着您的 PATH 未在您的 cron 作业中正确设置。在test.bash中执行echo PATH=$PATH 1>&2并检查下一次 cron 执行的输出。 -
完成了,输出如下
PATH=/usr/bin:/bin