Jawaban utama
Ya, untuk menjawab pertanyaan Anda, dimungkinkan untuk menggunakan JavaScript sebagai bahasa skrip "biasa" dari baris perintah, tanpa browser. Karena orang lain belum menyebutkannya, saya melihat bahwa itu layak disebutkan:
Pada sistem berbasis Debian (dan ini termasuk Ubuntu, Linux Mint, dan aptosid / sidux, setidaknya), selain opsi untuk menginstal Rhino dan lainnya yang telah disebutkan, Anda memiliki opsi lain:
Instal libmozjs-24-bin
paket, yang akan memberi Anda mesin Spidermonkey Mozilla di baris perintah sebagai sederhana js24
, yang dapat digunakan juga sebagai juru bahasa interaktif. ( 24
Nama tersebut sesuai dengan versi 24 dari Firefox).
Instal libv8-dev
paket, yang akan memberi Anda mesin V8 Google. Ia memiliki, sebagai salah satu contohnya, file /usr/share/doc/libv8-dev/examples/shell.cc.gz
yang dapat Anda kompres dan kompilasi dengan sangat sederhana (misalnya, g++ -Os shell.cc -o shell -lv8
).
Instal paket nodejs
dan itu akan tersedia baik sebagai executable nodejs
dan sebagai alternatif (dalam arti Debian) untuk menyediakan js
executable. Kompilasi JIT disediakan sebagai milik V8.
Instal paket libjavascriptcoregtk-3.0-bin
dan gunakan penerjemah JavaScriptCore WebKit ( jsc
) sebagai juru bahasa biasa dari baris perintah. Dan ini tanpa perlu memiliki akses ke Mac. Pada banyak platform (mis., X86 dan x86_64), juru bahasa ini akan datang dengan kompiler JIT.
Jadi, dengan hampir tanpa kompilasi Anda akan memiliki tiga mesin JavaScript kelas berat yang Anda inginkan.
Tambahan
Setelah Anda menginstal sesuatu, Anda dapat membuat file dengan #!/usr/bin/js
baris shebang dan semuanya akan berfungsi:
$ cat foo.js
#!/usr/bin/js
console.log("Hello, world!");
$ ls -lAF /usr/bin/js /etc/alternatives/js /usr/bin/nodejs
lrwxrwxrwx 1 root root 15 Jul 16 04:26 /etc/alternatives/js -> /usr/bin/nodejs*
lrwxrwxrwx 1 root root 20 Jul 16 04:26 /usr/bin/js -> /etc/alternatives/js*
-rwxr-xr-x 1 root root 1422004 Apr 28 20:31 /usr/bin/nodejs*
$ chmod a+x foo.js
$ ./foo.js
Hello, world!
$ js ./foo.js
Hello, world!
$