Ich beschäftige mich mit Javascript-Programmierung ohne Browser. Ich möchte Skripte über die Linux- oder Mac OS X-Befehlszeile ausführen, ähnlich wie wir jede andere Skriptsprache ausführen (Ruby, PHP, Perl, Python ...).
$ javascript my_javascript_code.js
Ich habe mir Spider Monkey (Mozilla) und v8 (Google) angesehen, aber beide scheinen eingebettet zu sein.
Verwendet jemand Javascript als Skriptsprache, die über die Befehlszeile ausgeführt werden soll?
Wenn jemand neugierig ist, warum ich das untersuche, habe ich mich in node.js umgesehen . Die Leistung von node.js lässt mich fragen, ob Javascript eine brauchbare Skriptsprache für die Verarbeitung großer Datenmengen ist.
javascript
unix
command-line
scripting
v8
Daniel
quelle
quelle
Antworten:
Ich habe diese verwandte Frage zum Thema gefunden, aber wenn Sie direkte Links wünschen, sind sie hier:
Ich bin überrascht, dass node.js nicht mit einer Shell geliefert wird, aber ich denke, es ähnelt eher einem epoll- / selektorbasierten Callback- / ereignisorientierten Webserver. Vielleicht benötigt es nicht den vollständigen JS-Funktionsumfang, aber ich Ich bin nicht allzu vertraut mit seinem Innenleben.
Da Sie anscheinend an node.js interessiert sind und es auf V8 basiert, ist es möglicherweise am besten, diese Anweisungen zum Einrichten einer V8-Umgebung zu befolgen, damit Sie eine konsistente Grundlage für Ihre JavaScript-Programmierung haben (ich hoffe, JSC und V8 sind es meistens das gleiche, aber ich bin nicht sicher).
quelle
nodejs
des Terminals Zugriff auf REPL.Hauptantwort
Ja, um Ihre Frage zu beantworten, ist es möglich, JavaScript als "normale" Skriptsprache über die Befehlszeile ohne Browser zu verwenden. Da andere es noch nicht erwähnt haben, sehe ich, dass es erwähnenswert ist:
Auf Debian-basierten Systemen (und dies schließt zumindest Ubuntu, Linux Mint und aptosid / sidux ein) haben Sie neben den Optionen zur Installation von Rhino und anderen bereits erwähnten andere Optionen:
Installieren Sie das
libmozjs-24-bin
Paket, mit dem Sie die Spidermonkey-Engine von Mozilla in der Befehlszeile als einfaches Paket erhalten, dasjs24
auch als interaktiver Interpreter verwendet werden kann. (Das24
im Namen bedeutet, dass es Version 24 von Firefox entspricht).Installieren Sie das
libv8-dev
Paket, mit dem Sie die V8-Engine von Google erhalten. Es hat als eines seiner Beispiele die Datei,/usr/share/doc/libv8-dev/examples/shell.cc.gz
die Sie sehr einfach dekomprimieren und kompilieren können (zg++ -Os shell.cc -o shell -lv8
. B. ).Installieren Sie das Paket
nodejs
und es wird sowohl als ausführbare Dateinodejs
als auch als Alternative (im Debian-Sinne) zur Bereitstellung derjs
ausführbaren Datei verfügbar sein . Die JIT-Kompilierung wird mit freundlicher Genehmigung von V8 bereitgestellt.Installieren Sie das Paket
libjavascriptcoregtk-3.0-bin
und verwenden Sie den JavaScriptCore-Interpreter (jsc
) von WebKit als regulären Interpreter über die Befehlszeile. Und das ohne Zugriff auf einen Mac. Auf vielen Plattformen (z. B. x86 und x86_64) wird dieser Interpreter mit einem JIT-Compiler geliefert.Mit fast keiner Kompilierung stehen Ihnen drei der schwergewichtigen JavaScript-Engines zur Verfügung.
Nachtrag
Sobald Sie die Dinge installiert haben, können Sie einfach Dateien mit der
#!/usr/bin/js
Shebang-Zeile erstellen und die Dinge funktionieren einfach:quelle
Ich habe Node.js auf einem iMac installiert und
in bash wird funktionieren.
quelle
nodejs somefile.js
seit ich das nodejs-Paket installiert hatteIch weiß, dass Sie nach Linux und Mac gefragt haben. Ich werde die Antwort für Windows geben, falls andere Leute, die an Windows interessiert sind, Ihre Frage finden.
Windows enthält eine Javascript-Engine, die über die Befehlszeile verwendet werden kann.
Alle Windows-Versionen seit Windows 98 enthalten " The Windows Script Host ". Es ist eine Windows-Standardmethode zur Unterstützung von Skript- "Engines". Seit der ersten Version unterstützt WSH JScript, die Microsoft-Version von Javascript. Dies bedeutet unter anderem, dass Sie über eine Windows-Befehlszeile einfach den Namen einer beliebigen * .js-Datei aufrufen können und diese in der JScript-Engine ausgeführt wird. (entweder über wscript.exe oder cscript.exe)
quelle
Da es niemand erwähnt hat: Seit Java 1.6 Das Java JDK wird auch mit einer JavaScript-Kommandozeile und REPL geliefert.
Es basiert auf Rhino: https://developer.mozilla.org/en/docs/Rhino
In Java 1.6 und 1.7 heißt der Befehl
jrunscript
(jrunscript.exe
unter Windows) und befindet sich im Ordner bin des JDK.Ab Java 1.8 wird eine neue JavaScript-Implementierung gebündelt (Nashorn: https://blogs.oracle.com/nashorn/ )
In Java 1.8 heißt der Befehl also
jjs
(jjs.exe
unter Windows)quelle
FWIW, node.js wird mit einer Shell geliefert. Geben Sie Folgendes ein:
Sobald Sie node.js installiert haben, um es in Aktion zu sehen. Es ist ziemlich normal, rlwrap zu installieren, damit es gut funktioniert.
quelle
Vielleicht möchten Sie Rhino ausprobieren .
Die Rhino Shell bietet eine Möglichkeit, JavaScript-Skripte im Batch-Modus auszuführen:
quelle
Ich weiß, dass dies alt ist, aber Sie sollten auch Zombie.js versuchen . Ein kopfloser Browser, der wahnsinnig schnell und ideal zum Testen ist!
quelle
Ich benutze Ubuntu 12.10 und js von der Kommandozeile
Es ist mit meiner Installation von Java verfügbar:
Einige Beispiele:
Der Himmel ist die Grenze, dann machen Sie weiter.
quelle
Mit PhantomJS können Sie dies ebenfalls tun
http://phantomjs.org/
quelle
Ich fand diese wirklich raffinierte Open Source ECMAScript-kompatible JS Engine, die vollständig in C geschrieben ist und duktape heißt
Viel Glück!
quelle
Nun, es gibt JavaScript als OSA , eine Erweiterung, die JavaScript als Alternative zu AppleScript bereitstellt. Ich habe das vor ungefähr 10 Jahren verwendet, weiß nicht, ob es noch mit aktuellen Betriebssystemversionen funktioniert
quelle
JSDB , verfügbar für Linux, Windows und Mac, sollte ziemlich gut passen. Es verwendet Mozillas Spidermonkey Javascript-Engine und scheint im Vergleich zu node.js weniger umständlich zu installieren zu sein (zumindest das letzte Mal, als ich node.js vor ein paar Jahren ausprobiert habe).
Ich habe JSDB aus dieser interessanten Liste von Javascript-Shells gefunden: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Shells
quelle