Czy istnieje powłoka JavaScript?

30

Ostatnio współpracuję z JS i jestem bardzo entuzjastycznie nastawiony do tego języka. Wiem, że istnieje node.js do uruchamiania JS po stronie serwera, ale czy istnieje powłoka, która używa JS jako języka skryptowego? Jeśli coś takiego istnieje, w jakim stopniu jest ono użyteczne i stabilne?

Junior
źródło

Odpowiedzi:

17

Czy to dla ciebie wygląda na pożądane?

// 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('..');

Jeśli tak, to ShellJS może być interesujące

przenośna (w systemie Windows) implementacja poleceń powłoki Unix na interfejsie API Node.js.

Nie jestem jednak pewien, czy można to wykorzystać jako w pełni funkcjonalną powłokę logowania. (Może z jakimś opakowaniem?)

Można argumentować, że tak naprawdę nie jest to powłoka, ale czy znasz TermKit ? Jest zrobiony z Node.js + Webkit, możesz użyć JS do jego rozszerzenia (tak sądzę); językiem powłoki jest nadal Bash (-ish).

sr_
źródło
Cóż, to wygląda świetnie! Dam temu szansę.
J-unior,
Technicznie nie uważam tego za powłokę, ponieważ nie przestrzega ona cmd argumentsskładni. Na przykład pshdodaje taką składnię do języka perl z mojego zrozumienia, aby wyglądała bardziej jak typowa powłoka gnp.github.io/psh Może być przeciwny przykład, ale jeszcze go nie znalazłem.
William
Jak ustawić to jako moją powłokę logowania? Znów chcę coś takiego, ale po prostu nie jestem przekonany, czy to jest to.
William
Nadal bash-ish, moglibyśmy użyć sed({i:1}, 'BUILD_VERSION', 'v0.1.2', file)zamiast tego. Lepiej byłoby używać funkcji asynchronicznych z funkcją oczekiwania, więc równoległe byłoby szybsze.
inf3rno
Link ShellJS jest uszkodzony.
YO_
8

Jeśli korzystasz z systemu Ubuntu lub innego systemu opartego na Debianie, możesz zainstalować nosorożec (z Mozilla.org).

sudo apt-get install rhino

Dostarcza js poprzez alternatywy:

=== /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 ===

Wywołanie nosorożca lub js daje powłokę JavaScript.

Edytuj (30.06.2014):

nosorożec dobrze jest szybko przetestować kod javascript w pliku, ale nie jest to interaktywna powłoka, więc nie obsługuje stylu edycji GNU readline. Do pracy interaktywnej możesz preferowaćnodejs: na Ubuntu / debiansudo apt-get install nodejs. Powinno to zapewnić bardziej interaktywnąjspowłokę (wywołać za pomocą poleceniajs), w której można edytować wiersze i przywoływać historię za pomocą klawiszy strzałek w górę / w dół. Aby uzyskać dłuższą listę opcji, zobacz https://developer.mozilla.org/en-US/docs/Web/JavaScript/Shells

arielf
źródło
0

W Chrome i Firefox, jeśli naciśniesz F12, pojawi się narzędzie programistyczne. Tam możesz znaleźć zakładkę o nazwie konsola, w której możesz pisać i testować skrypty JavaScript. Posiada uzupełnianie kodu i inne funkcje.

Społeczność
źródło
5
Myślę, że nie zrozumiałeś pytania. Zapytałem o powłokę UNIX . Ale dzięki za chęć pomocy.
J-unior,
1
To odpowiada na pytanie: „Czy istnieje powłoka, która używa JS jako języka skryptowego? ”. Nic w pytaniu nie mówi o alternatywie bashlub zsh(itp.)
roaima