Existe um shell JavaScript?

29

Recentemente, tenho trabalhado com JS e estou muito entusiasmado com essa linguagem. Eu sei que existe node.js para executar o JS no lado do servidor, mas existe um shell que usa o JS como uma linguagem de script? Se tal coisa existe, como utilizável & estável é isso?

    
por J-unior 09.12.2012 / 15:20

4 respostas

16

Isso parece desejável para você?

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

Em caso afirmativo, ShellJS pode ser interessante, é

a portable (Windows included) implementation of Unix shell commands on top of the Node.js API.

Não tenho certeza se isso pode ser usado como um shell de login com recursos completos. (Talvez com algum embrulho?)

Você poderia argumentar que não é realmente um shell, mas você sabe TermKit ? É feito de Node.js + Webkit, você poderia usar JS para estendê-lo (eu acho); a linguagem shell ainda é Bash (-ish).

    
por 09.12.2012 / 16:04
8

A Mozilla INC oferece um javascript shell : veja Introduction_to_the_JavaScript_shell

Exemplo de um shell em um sistema :

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

Nenhum problema detectado desde que eu o usei para fins de teste.

    
por 09.12.2012 / 15:22
8

Se você está no Ubuntu ou em qualquer outro sistema baseado no Debian, você pode instalar o rinoceronte (do Mozilla.org).

sudo apt-get install rhino

Fornece js via alternativas:

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

Então, chamar rinoceronte ou js fornecerá um shell JavaScript.

Editar (2014-06-30):

rinoceronte é bom testar rapidamente algum código javascript em um arquivo, mas não é um shell interativo, então ele não suporta o estilo de edição readline do GNU. Para trabalhos interativos, você pode preferir nodejs : no Ubuntu / debian sudo apt-get install nodejs . Isso deve fornecer um shell js mais interativo (invoque usando o comando js ) onde você pode editar linhas e recuperar histórico com as teclas de seta para cima / para baixo. Para uma lista mais longa de opções, consulte o link

    
por 10.12.2012 / 23:22
0

No Chrome e no Firefox, se você pressionar F12, serão exibidas as ferramentas do desenvolvedor. Lá você poderia encontrar uma guia chamada console, onde você poderia digitar e testar scripts JavaScript. Ele tem complementação de código e outros recursos também.

    
por 09.12.2012 / 15:47