TextExpander,Shell Scripts,&节点

时间:2013-09-25 20:03:47

标签: node.js bash shell textexpander

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

#!/usr/bin/env node

console.log("foo");

上面的脚本应该导致TextExpander在触发时插入文本“foo”,但事实并非如此。 bash中的等价物与预期的一样:

#!/usr/bin/env bash

echo "foo"

我认为也许对console.log()的调用并没有产生TextExpander正在寻找的东西(虽然我能找到的所有文档都说应该打印到stdout)。我甚至尝试过这样的解决方法而没有运气:

#!/usr/bin/env sh

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

我没有明显的错误或任何迹象表明出现了问题。我最后用TextExpander插入一个空字符串而不是"foo"。任何TextExpander都认为可能会看到我遗漏的东西?在shell中运行非工作示例工作正常,TextExpander应该只捕获到stdout的任何内容。我甚至不确定如何调试它。

2 个答案:

答案 0 :(得分:3)

确保TextExpander将使用的PATH环境变量中列出了安装node可执行文件的目录。这可能与您在终端中获得的PATH值不同。要验证是否存在问题,请尝试使用#!/full/path/to/node作为shebang行,而不是运行env。我的猜测是节点安装在/usr/local/bin/node或主目录下的某个位置,并且这两个节点都不在TextExpander运行时的PATH中。

答案 1 :(得分:0)

您可能应该在标题中添加-e

#!/usr/bin/env node -e

或者

您可能应该在标题中添加-e:

#!/path/to/node -e