Есть ли оболочка JavaScript?


30

В последнее время я работаю с JS, и мне очень нравится этот язык. Я знаю, что есть node.js для запуска JS на стороне сервера, но есть ли оболочка, которая использует JS в качестве языка сценариев? Если такая вещь существует, насколько она полезна и стабильна?

Ответы:


17

Это выглядит желательным для вас?

// Replace macros in each .js file
cd('lib');
ls('*.js').forEach(function(file) {
  sed('-i', 'BUILD_VERSION', 'v0.1.2', file);
  sed('-i', /.*REMOVE_THIS_LINE.*\n/, '', file);
  sed('-i', /.*REPLACE_LINE_WITH_MACRO.*\n/, cat('macro.js'), file);
});
cd('..');

Если это так, ShellJS может быть интересным, это

переносимая (включая Windows) реализация команд оболочки Unix поверх API Node.js.

Однако я не уверен, что это можно использовать в качестве полнофункциональной оболочки для входа. (Может быть, с какой-то упаковкой?)

Вы можете утверждать, что это не оболочка, но знаете ли вы TermKit ? Он сделан из Node.js + Webkit, вы можете использовать JS для его расширения (я думаю); язык оболочки по-прежнему Bash (-ish).


Ну, это выглядит круто! Я попробую.
J-Unior

Технически я не считаю это оболочкой, потому что она не соответствует cmd argumentsсинтаксису. Например, pshиз моего понимания добавляет такой синтаксис к языку perl, чтобы он выглядел скорее как типичная оболочка gnp.github.io/psh. Может быть встречный пример, но я пока не нашел его.
Уильям

Как бы я установить это в качестве оболочки для входа? Я снова хочу что-то подобное, но я просто не уверен, что это так.
Уильям

Тем не менее, мы можем использовать sed({i:1}, 'BUILD_VERSION', 'v0.1.2', file)вместо этого. Было бы лучше использовать асинхронные функции с await, поэтому параллель будет быстрее.
inf3rno

Ссылка на ShellJS не работает.
yO_

8

Mozilla INC предлагает javascriptоболочку : см. Введение_в__JavaScript_shell

Пример оболочки в системной :

$ js
js> str = "welcome on *nix side" 
"welcome on *nix side"
js> str.indexOf("nix");          
12
js> 

Проблем не обнаружено, так как я использую его для целей тестирования.


Это доступно на некоторых / многих дистрибутивах Linux сейчас как jsпакет.
Златовласка

8

Если вы используете Ubuntu или любую другую систему на основе Debian, вы можете установить rhino (с сайта Mozilla.org).

sudo apt-get install rhino

Он поставляет JS через альтернативы:

=== /usr/bin/js is a symlink... following it
lrwxrwxrwx 1 root root 20 Nov 21 08:54 /usr/bin/js -> /etc/alternatives/js
=== /etc/alternatives/js is a symlink... following it
lrwxrwxrwx 1 root root 14 Nov 21 08:54 /etc/alternatives/js -> /usr/bin/rhino
=== /usr/bin/rhino is owned by package: rhino ===

Поэтому вызов либо rhino, либо js даст вам оболочку JavaScript.

Изменить (2014-06-30):

Rhino хорош для быстрого тестирования некоторого кода javascript в файле, но это не интерактивная оболочка, поэтому он не поддерживает стиль редактирования GNU readline. Для интерактивной работы вы можете предпочестьnodejs: на Ubuntu / Debiansudo apt-get install nodejs. Это должно обеспечить более интерактивнуюjsоболочку (вызывать с помощью командыjs), где вы можете редактировать строки и вызывать историю с помощью стрелок вверх / вниз. Более подробный список параметров см. По адресу https://developer.mozilla.org/en-US/docs/Web/JavaScript/Shells.


0

В Chrome и Firefox, если вы нажмете F12, появится инструмент для разработчиков. Там вы можете найти вкладку с названием console, где вы можете набирать и тестировать JavaScript-скрипты. Он имеет завершение кода и другие функции.


5
Я думаю, что вы не поняли вопрос. Я спросил о оболочке UNIX . Но спасибо за желание помочь в любом случае.
J-Unior

1
Это отвечает на вопрос « есть ли оболочка, которая использует JS в качестве языка сценариев? ». Ничто в этом вопросе не говорит об альтернативе bashили zsh(и т.д.)
roaima
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.