Apakah ada shell JavaScript?


30

Baru-baru ini saya telah bekerja dengan JS dan saya sangat antusias dengan bahasa ini. Saya tahu bahwa ada node.js untuk menjalankan JS di sisi server, tetapi apakah ada shell yang menggunakan JS sebagai bahasa scripting? Jika hal seperti itu ada, seberapa bermanfaat & stabilnya?

Jawaban:


17

Apakah ini terlihat diinginkan oleh Anda?

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

Jika demikian, ShellJS bisa menarik, itu

implementasi portabel (termasuk Windows) dari perintah shell Unix di atas API Node.js.

Saya tidak yakin apakah ini dapat digunakan sebagai shell login berfitur lengkap. (Mungkin dengan beberapa pembungkus?)

Anda bisa berargumen bahwa itu bukan benar-benar shell, tetapi apakah Anda tahu TermKit ? Itu terbuat dari Node.js + Webkit, Anda bisa menggunakan JS untuk memperpanjangnya (saya kira); bahasa shell masih Bash (-ish).


Nah, itu terlihat keren! Saya akan mencobanya.
J-unior

Secara teknis saya tidak benar-benar menganggap ini shell karena tidak mengikuti cmd argumentssintaks. Sebagai contoh pshmenambahkan sintaks seperti itu ke bahasa perl dari pemahaman saya sehingga sepertinya lebih mirip shell gnp.github.io/psh yang mungkin ada contoh counter tapi saya belum menemukannya.
William

Bagaimana saya mengatur ini sebagai shell login saya? Sekali lagi saya ingin sesuatu seperti ini tetapi saya tidak yakin ini dia.
William

Masih bash-ish, kita bisa menggunakannya sed({i:1}, 'BUILD_VERSION', 'v0.1.2', file). Akan lebih baik menggunakan fungsi async dengan menunggu, jadi paralel akan lebih cepat.
inf3rno

Tautan ShellJS rusak.
yO_


8

Jika Anda menggunakan Ubuntu atau sistem berbasis debian lainnya, Anda dapat menginstal badak (dari Mozilla.org).

sudo apt-get install rhino

Ini memasok js melalui alternatif:

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

Jadi memanggil badak atau js akan memberi Anda shell JavaScript.

Edit (2014-06-30):

badak baik untuk dengan cepat menguji beberapa kode javascript dalam file, tetapi itu bukan shell interaktif, sehingga tidak mendukung gaya mengedit readline GNU. Untuk pekerjaan interaktif, Anda dapat memilihnodejs: di Ubuntu / debiansudo apt-get install nodejs. Ini harus menyediakanjsshell yanglebih interaktif(aktifkan menggunakan perintahjs) di mana Anda dapat mengedit baris dan mengingat riwayat dengan tombol panah atas / bawah. Untuk daftar opsi yang lebih panjang, lihat https://developer.mozilla.org/en-US/docs/Web/JavaScript/Shells


0

Di Chrome dan Firefox, jika Anda menekan F12 itu memunculkan alat pengembang. Di sana Anda bisa menemukan tab yang disebut konsol, tempat Anda bisa mengetik dan menguji skrip JavaScript. Ini memiliki penyelesaian kode dan fitur lainnya juga.


5
Saya pikir Anda tidak mengerti pertanyaannya. Saya sudah bertanya tentang shell UNIX . Tapi terima kasih sudah bersedia membantu.
J-unior

1
Ini menjawab pertanyaan, " apakah ada shell yang menggunakan JS sebagai bahasa scripting? ". Tidak ada dalam pertanyaan yang berbicara tentang alternatif bashatau zsh(dll.)
roaima
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.