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