0

我正在尝试将一些 JS 代码作为 Node shell 脚本执行,但它似乎不起作用,我不知道为什么。这是一个简单的例子:

#!/usr/bin/env node

console.log("foo");

上面的脚本应该导致 TextExpander 在触发时插入文本“foo”,但事实并非如此。bash 中的等效项按预期工作:

#!/usr/bin/env bash

echo "foo"

我认为也许调用console.log()没有产生 TextExpander 正在寻找的东西(尽管我能找到的所有文档都说应该打印到标准输出)。我什至尝试过这样的解决方法,但没有运气:

#!/usr/bin/env sh

echo `/usr/bin/env node -e "console.log(\"foo\");"`

我没有看到明显的错误或任何表明出现问题的迹象。我只是用 TextExpander 插入一个空字符串而不是"foo". 任何 TextExpander 专家可能会看到我遗漏的东西?在 shell 中运行非工作示例可以正常工作,并且 TextExpander 应该只捕获进入标准输出的任何内容。我什至不确定如何进行调试。

4

2 回答 2

3

确保node安装可执行文件的目录列在 TextExpander 将使用的 PATH 环境变量中。这可能与您在终端中获得的 PATH 值不同。要验证这是否是问题所在,请尝试#!/full/path/to/node使用 as your shebang line 而不是 running env。我的猜测是 node 安装/usr/local/bin/node在您的主目录中或某处,并且它们都不在 TextExpander 在运行时具有的 PATH 中。

于 2013-09-25T20:51:41.197 回答
0

您可能应该添加-e到您的标题:

#!/usr/bin/env node -e

或者

您可能应该将 -e 添加到您的标题中:

#!/path/to/node -e
于 2013-09-25T20:58:55.383 回答