Esiste una shell JavaScript?


30

Di recente ho lavorato con JS e sono molto entusiasta di questa lingua. So che esiste node.js per l'esecuzione di JS sul lato server, ma esiste una shell che utilizza JS come linguaggio di scripting? Se esiste una cosa del genere, quanto è utilizzabile e stabile?

Risposte:


17

Ti sembra desiderabile?

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

Se è così, ShellJS potrebbe essere interessante, lo è

un'implementazione portatile (inclusa Windows) dei comandi della shell Unix sulla parte superiore dell'API Node.js.

Non sono sicuro se questo potrebbe essere usato come shell di login con funzionalità complete, però. (Forse con un po 'di avvolgimento?)

Potresti sostenere che non è davvero una shell, ma conosci TermKit ? È fatto di Node.js + Webkit, potresti usare JS per estenderlo (immagino); il linguaggio shell è ancora Bash (-ish).


Bene, sembra fantastico! Lo proverò.
J-unior,

Tecnicamente non lo considero davvero una shell perché non segue la cmd argumentssintassi. Ad esempio, pshaggiungo tale sintassi al linguaggio perl dalla mia comprensione, in modo che appaia più come una tipica shell gnp.github.io/psh Potrebbe esserci un contro esempio ma non l'ho ancora trovato.
William,

Come lo imposto come shell di accesso? Ancora una volta voglio qualcosa del genere, ma non sono convinto che sia così.
William,

Ancora bash-ish, potremmo usare sed({i:1}, 'BUILD_VERSION', 'v0.1.2', file)invece. Sarebbe meglio usare le funzioni asincrone con wait, quindi il parallelo sarebbe più veloce.
inf3rno,

Il collegamento ShellJS è interrotto.
yO_


8

Se usi Ubuntu o qualsiasi altro sistema basato su debian, puoi installare rhino (da Mozilla.org).

sudo apt-get install rhino

Fornisce js tramite alternative:

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

Quindi chiamare rhino o js ti darà una shell JavaScript.

Modifica (30/06/2014):

rhino è utile per testare rapidamente del codice javascript in un file, ma non è una shell interattiva, quindi non supporta lo stile di modifica GNU readline. Per il lavoro interattivo, potresti preferirenodejs: su Ubuntu / debiansudo apt-get install nodejs. Ciò dovrebbe fornire unajsshellpiù interattiva(invocare usando il comandojs) in cui è possibile modificare le linee e richiamare la cronologia con i tasti freccia su / giù. Per un elenco più lungo di opzioni, vedere https://developer.mozilla.org/en-US/docs/Web/JavaScript/Shells


0

In Chrome e Firefox, se si preme F12, vengono visualizzati gli strumenti di sviluppo. Laggiù puoi trovare una scheda chiamata console, dove puoi digitare e testare gli script JavaScript. Ha anche il completamento del codice e altre funzionalità.


5
Penso che tu non abbia capito la domanda. Ho chiesto informazioni sulla shell UNIX . Ma grazie per la disponibilità ad aiutare comunque.
J-unior,

1
Questo risponde alla domanda " esiste una shell che utilizza JS come linguaggio di scripting? ". Nulla nella domanda parla di un'alternativa basho zsh(ecc.)
roaima,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.