Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Запуск сценариев на языке JavaScript из командной строки

Оригинал: Run JavaScript from command line in Linux
Автор: Arnab Satapathi
Дата публикации: 9 ноября 2016 г.
Перевод: А.Панин
Дата перевода: 5 апреля 2017 г.

Язык программирования JavaScript набирает популярность день ото дня, причем сегодня его область применения не ограничивается веб-браузерами; JavaScript используется даже при программировании микроконтроллеров.

На основе JavaScript создан ряд проектов с большим потенциалом, среди которых можно выделить:

  1. Node-RED, визуальная платформа для моделирования цепей, используемых в области интернета вещей; подробности по ссылке.
  2. DVD.js, программный компонент для проигрывания DVD в веб-браузере; подробности по ссылке.
  3. Espruino, реализация JavaScript для микроконтроллеров; подробности по ссылке.
  4. SMART.js, еще одна реализация JavaScript для микроконтроллеров, используемая в области интернета вещей.
  5. BoneScript, версия фреймворка node.js для beagleboard с возможностью доступа к аппаратному обеспечению; подробности по ссылке.

На основе всего вышесказанного можно сделать вывод о том, что у языка программирования JavaScript отличное будущее, поэтому имеет смысл попробовать поработать с ним в Linux, а если быть более точным, научиться запускать сценарии на языке JavaScript из командной строки.

Начинаем работать с интерпретатором JavaScript из командной строки

В первую очередь нам понадобится интерпретатор JavaScript, который может запускаться из командной строки и интерпретировать сценарии на языке JavaScript; существует большое количество таких интерпретаторов, а это список наиболее популярных из них.

Из-за широкого выбора интерпретаторов вы можете растеряться, но в любом случае стоит начинать свое знакомство с JavaScript с использования двух "больших братьев", а именно, v8 от Google и SpiderMonkey от Mozilla.

Примечание: интерпретаторы v8 и SpiderMonkey интерпретируют сценарии на языке JavaScript по-разному, следовательно некоторые сценарии могут оказаться не совместимыми или не переносимыми между ними.

Процесс установки интерпретаторов зависит от используемого дистрибутива GNU/Linux, но обычно не связан с какими-либо трудностями. Мы будем рассматривать процесс их установки в таких дистрибутивах, как Ubuntu, Linux Mint и так далее.

Запуск сценария на языке JavaScript с помощью фреймворка Node.js и интерпретатора v8

Фреймворк Node.js является очень популярным среди JavaScript-разработчиков и использует интерпретатор v8, хотя вы также можете использовать данный интерпретатор без Node.js, но это совсем не обязательно.

sudo apt-get install nodejs

Лучшим способом установки новейшей версии Node.js является установка загруженного с официального сайта исходного кода в соответствии с инструкцией.

Пример: вы можете использовать команду nodejs или node для запуска интерактивной сессии и непосредственного ввода команд, но такой подход является довольно сомнительным, поэтому я рекомендую вам поместить следующий код программы Hello World на языке JavaScript в файл и исполнить его.

console.log(Hello, World!);

Теперь вы можете исполнить сценарий следующим образом:

user@host:~$ node hello.js
Hello, World!

А это код простейшего калькулятора индекса массы тела без проверок вводимых значений:

var mass = +process.argv[2];
var height = +process.argv[3];
BMI = mass / Math.pow(height, 2);
console.log(BMI);

Сохраните этот код в файле с любым именем и воспользуйтесь аналогичной командой для его исполнения:

node bmi_calc.js <масса в килограммах> <высота в метрах>

Исполнение сценария на языке JavaScript с помощью интерпретатора SpiderMonkey

Это первый из существующих интерпретаторов JavaScript, созданный специалистами компании Netscape и разрабатываемый в текущее время специалистами компании Mozilla. В основанных на Debian дистрибутивах вы можете установить его с помощью утилиты apt-get:

sudo apt-get install libmozjs-24-bin

Бинарный файл интерпретатора расположен по пути /usr/bin/js24, причем вы также можете воспользоваться интерактивной сессией для исполнения произвольного кода.

Пример: код на языке JavaScript для вычисления факториала от 1 до 10 и вывода результатов:

function factorial(n)
{   if (n == 0)
    return 1;
    else
    return n * factorial(n-1);
}
var i;
for (i = 0; i <= 10; i++)
    print(i + "! = " + factorial(i));

Вы можете ознакомиться с дополнительной информацией об интерпретаторе SpiderMonkey и его встроенных функциях, перейдя по данной ссылке.

Другие заслуживающие упоминания интерпретаторы JavaScript

Как вы уже могли убедиться, существует большое количество интерпретаторов JavaScript, поэтому сложно выбрать единственный интерпретатор для проекта, если, конечно же, не руководствоваться тем, что фреймворк Node.js является очень популярным, поэтому стоит использовать рекомендуемый для него интерпретатор.

А это другие интерпретаторы, о которых следует упомянуть:

  1. Nashorn - интерпретатор, разработанный специалистами компании Oracle с использованием языка программирования Java.
  2. Rhino - еще один интерпретатор, разработанный с использованием языка Java, на этот раз от специалистов компании Mozilla.
  3. Duktape - небольшой встраиваемый интерпретатор JavaScript.
  4. v7 - крайне легковесный и мощный интерпретатор, собранный на основе всего лишь двух файлов исходного кода с именами v7.c и v7.h.
  5. Chakra - интерпретатор JavaScript, разработанный специалистами компании Microsoft и недавно переведенный в ряд проектов с открытым исходным кодом под названием ChakraCore.

Каждый из упомянутых интерпретаторов предоставляет свой набор возможностей или встроенных функций, поэтому сценарий для Node.js/v8, скорее всего, не будет работать корректно в случае использования любого другого интерпретатора.

Заключение

Я рассказал о том, как запускать сценарии на языке JavaScript из командной строки и передаю эстафету экспертам в области JavaScript - пишите отличные приложения на языке JavaScript и делитесь своими наработками в разделе комментариев.

Я также не против любых советов и вопросов по рассмотренной теме.