TextExpander, сценарии оболочки и узел

Я пытаюсь выполнить JS-код в виде сценария оболочки Node, но он не работает, и я не могу сказать, почему. Вот простой пример:

#!/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 считают, что это может увидеть то, что мне не хватает? Выполнение нерабочих примеров в оболочке работает нормально, и TextExpander должен просто захватывать все, что идет в стандартный вывод. Я даже не уверен, как я мог отладить это.

2 ответа

Решение

Убедитесь, что каталог, где ваш node Установленный исполняемый файл указан в переменной среды PATH, которую будет использовать TextExpander. Вероятно, это не то же значение PATH, которое вы получаете в своем терминале. Чтобы убедиться, что это проблема, попробуйте сделать #!/full/path/to/node как ваша линия Шебанга вместо того, чтобы бежать env, Я предполагаю, что узел установлен либо в /usr/local/bin/node или где-нибудь в вашем домашнем каталоге, и ни один из них не находится в ПУТИ, который есть у TextExpander во время работы.

Вы, вероятно, должны добавить -e в ваш заголовок:

#!/usr/bin/env node -e

Или же

Вы, вероятно, должны добавить -e к заголовку:

#!/path/to/node -e
Другие вопросы по тегам