Existe-t-il un shell JavaScript?


30

Récemment, je travaille avec JS et je suis très enthousiaste à propos de ce langage. Je sais qu'il existe node.js pour exécuter JS côté serveur, mais existe-t-il un shell qui utilise JS comme langage de script? Si une telle chose existe, est-elle utilisable et stable?

Réponses:


17

Cela vous semble-t-il souhaitable?

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

Si oui, ShellJS pourrait être intéressant, c'est

une implémentation portable (Windows incluse) des commandes shell Unix au-dessus de l'API Node.js.

Je ne sais pas si cela pourrait être utilisé comme un shell de connexion complet. (Peut-être avec un peu d'emballage?)

Vous pourriez dire que ce n'est pas vraiment un shell, mais connaissez-vous TermKit ? Il est fait de Node.js + Webkit, vous pouvez utiliser JS pour l'étendre (je suppose); le langage shell est toujours Bash (-ish).


Eh bien, ça a l'air cool! Je vais essayer.
J-unior

Techniquement, je ne considère pas vraiment cela comme un shell car il ne suit pas la cmd argumentssyntaxe. Par exemple, pshajoute une telle syntaxe au langage perl de ma compréhension, il apparaît donc plus comme un shell typique gnp.github.io/psh Il pourrait y avoir un contre-exemple mais je ne l'ai pas encore trouvé.
William

Comment définirais-je cela comme mon shell de connexion? Encore une fois, je veux quelque chose comme ça, mais je ne suis tout simplement pas convaincu que c'est ça.
William

Toujours bash-ish, nous pourrions utiliser à la sed({i:1}, 'BUILD_VERSION', 'v0.1.2', file)place. Il serait préférable d'utiliser les fonctions asynchrones avec wait, donc le parallèle serait plus rapide.
inf3rno

Le lien ShellJS est rompu.
yO_


8

Si vous utilisez Ubuntu ou tout autre système basé sur Debian, vous pouvez installer rhino (depuis Mozilla.org).

sudo apt-get install rhino

Il fournit js via des alternatives:

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

Donc, appeler rhino ou js vous donnera un shell JavaScript.

Modifier (2014-06-30):

rhino est bon pour tester rapidement du code javascript dans un fichier, mais ce n'est pas un shell interactif, donc il ne prend pas en charge le style d'édition GNU readline. Pour le travail interactif, vous pouvez préférernodejs: sur Ubuntu / debiansudo apt-get install nodejs. Cela devrait fournir unjsshellplus interactif(invoquer en utilisant la commandejs) où vous pouvez éditer des lignes et rappeler l'historique avec les flèches haut / bas. Pour une liste plus longue d'options, voir https://developer.mozilla.org/en-US/docs/Web/JavaScript/Shells


0

Dans Chrome et Firefox, si vous appuyez sur F12, cela fait apparaître des outils de développement. Là-bas, vous pouvez trouver un onglet appelé console, où vous pouvez taper et tester des scripts JavaScript. Il a un code complet et d'autres fonctionnalités aussi.


5
Je pense que vous n'avez pas compris la question. J'ai posé des questions sur le shell UNIX . Mais merci pour la volonté d'aider de toute façon.
J-unior

1
Cela répond à la question " existe-t-il un shell qui utilise JS comme langage de script? ". Rien dans la question ne parle d'une alternative à bashou zsh(etc.)
roaima
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.