Чи є оболонка 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 може бути цікавим, це так

портативна реалізація команд оболонки Unix, що знаходиться на вершині API Node.js.

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

Ви можете заперечити, що це насправді не оболонка, але чи знаєте ви TermKit ? Він зроблений з Node.js + Webkit, ви можете використовувати JS для його розширення (я думаю); мова оболонки все ще баш (-іш).


Ну, це виглядає круто! Я спробую.
J-unior

Я технічно не вважаю це оболонкою, оскільки вона не відповідає cmd argumentsсинтаксису. Наприклад, pshдодає такий синтаксис мові perl з мого розуміння, тому він виглядає більше як типова оболонка gnp.github.io/psh Можливо, є приклад лічильника, але я його ще не знайшов.
Вільям

Як би я встановив це як свою оболонку входу? Я знову хочу щось подібне, але я просто не впевнений, що це.
Вільям

І все-таки bash-ish, ми могли б використати sed({i:1}, 'BUILD_VERSION', 'v0.1.2', file)натомість. Було б краще використовувати функції асинхронізації з функцією очікування, тому паралель буде швидшою.
inf3rno

Посилання ShellJS розірвано.
yO_

8

Mozilla INC пропонує javascriptоболонку : див. Introduction_to_the_JavaScript_shell

Приклад оболонки у системній :

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

Жодних проблем не виявлено, оскільки я використовую це для тестування.


Це доступно в деяких / багатьох Linux-дистрибутивах як jsпакет.
золотинки

8

Якщо ви перебуваєте на Ubuntu або будь-якій іншій системі на базі debian, ви можете встановити носоріг (з 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 ===

Тож виклик або носорога, або js дасть вам оболонку JavaScript.

Редагувати (30.06.2014):

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, він відкриває інструменти для розробників. Там ви можете знайти вкладку під назвою консоль, де ви можете вводити та перевіряти сценарії JavaScript. Він має завершення коду та інші функції.


5
Я думаю, ви не зрозуміли питання. Я запитав про оболонку UNIX . Але дякую за готовність допомогти в будь-якому випадку.
J-unior

1
Це відповідає на питання, " чи існує оболонка, яка використовує JS як мову сценаріїв? ". Ніщо в питанні не говорить про альтернативу bashабо zsh(тощо)
roaima
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.