มีเชลล์ JavaScript หรือไม่


30

เมื่อเร็ว ๆ นี้ฉันทำงานกับ JS และฉันก็กระตือรือร้นกับภาษานี้มาก ฉันรู้ว่ามีnode.jsสำหรับรัน JS ที่ฝั่งเซิร์ฟเวอร์ แต่มีเชลล์ที่ใช้ JS เป็นภาษาสคริปต์หรือไม่ หากสิ่งนั้นมีอยู่จริงมันใช้งานได้และมั่นคงอย่างไร?

คำตอบ:


17

สิ่งนี้เป็นที่พึงปรารถนาสำหรับคุณหรือไม่?

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

ถ้าเป็นเช่นนั้นShellJSน่าสนใจ

การใช้งานแบบพกพา (รวมกับ Windows) ของคำสั่งเชลล์ Unix ที่ด้านบนของ Node.js API

ฉันไม่แน่ใจว่าสิ่งนี้สามารถใช้เป็นเชลล์การเข้าสู่ระบบแบบเต็มได้หรือไม่ (อาจจะมีบางห่อ?)

คุณสามารถโต้แย้งว่ามันไม่ใช่เปลือกหอย แต่คุณรู้จักTermKitหรือไม่? มันทำจาก Node.js + Webkit คุณสามารถใช้ JS เพื่อขยายมัน (ฉันเดา); ภาษาของเชลล์ยังคงเป็น Bash (-ish)


นั่นดูดี! ฉันจะลองดู
J-unior

ในทางเทคนิคแล้วผมไม่ได้พิจารณาเชลล์นี้เพราะมันไม่ได้ตามcmd argumentsซินแท็คซ์ ตัวอย่างเช่นpshเพิ่มไวยากรณ์ดังกล่าวให้กับภาษา Perl จากความเข้าใจของฉันดังนั้นจึงดูเหมือนเป็นเชลล์ทั่วไปgnp.github.io/psh อาจมีตัวอย่างเคาน์เตอร์ แต่ฉันยังไม่พบ
วิลเลียม

ฉันจะตั้งค่านี้เป็นเปลือกเข้าสู่ระบบของฉันได้อย่างไร อีกครั้งฉันต้องการอะไรแบบนี้ แต่ฉันไม่เชื่ออย่างนี้
วิลเลียม

ยังคง bash-ish เราสามารถใช้sed({i:1}, 'BUILD_VERSION', 'v0.1.2', file)แทน น่าจะดีกว่าถ้าใช้ฟังก์ชั่น async ด้วยการรอดังนั้นการขนานจะเร็วกว่า
inf3rno

ลิงก์ ShellJS เสีย
yO_

8

Mozilla INC เสนอjavascriptเชลล์ : ดูIntroduction_to_the_JavaScript_shell

ตัวอย่างของเชลล์ในระบบ:

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

ไม่พบปัญหาเนื่องจากฉันใช้เพื่อการทดสอบ


มีให้ในลินุกซ์ distros บางส่วน / มากตอนนี้เป็นjsแพ็คเกจ
goldilocks

8

หากคุณใช้ Ubuntu หรือระบบที่ใช้เดเบียนอื่น ๆ คุณสามารถติดตั้งแรด (จาก Mozilla.org)

sudo apt-get install rhino

มันให้ js ผ่านทางเลือก:

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

ดังนั้นการเรียกทั้งแรดหรือjsจะให้เชลล์ JavaScript แก่คุณ

แก้ไข (2014-06-30):

แรดเป็นสิ่งที่ดีในการทดสอบโค้ดจาวาสคริปต์ในไฟล์อย่างรวดเร็ว แต่มันไม่ใช่เชลล์เชิงโต้ตอบดังนั้นจึงไม่รองรับรูปแบบการแก้ไข readline ของ GNU สำหรับการทำงานแบบโต้ตอบคุณอาจต้องการnodejs: บน sudo apt-get install nodejsUbuntu สิ่งนี้ควรจัดเตรียมjsเชลล์แบบโต้ตอบมากขึ้น(เรียกใช้คำสั่งjs) ซึ่งคุณสามารถแก้ไขบรรทัดและประวัติการเรียกคืนด้วยปุ่มลูกศรขึ้น / ลง สำหรับรายการตัวเลือกที่ยาวขึ้นดู https://developer.mozilla.org/en-US/docs/Web/JavaScript/Shells


0

ใน Chrome และ Firefox ถ้าคุณกด F12 มันจะแสดงเครื่องมือสำหรับนักพัฒนา ตรงนั้นคุณจะพบแท็บชื่อคอนโซลซึ่งคุณสามารถพิมพ์และทดสอบสคริปต์ JavaScript มันมีการเติมเต็มโค้ดและคุณสมบัติอื่น ๆ ด้วย


5
ฉันคิดว่าคุณไม่เข้าใจคำถาม ฉันถามเกี่ยวกับเชลล์UNIX แต่ขอขอบคุณที่เต็มใจช่วยเหลือ
J-unior

1
วิธีนี้ตอบคำถาม " มีเชลล์ที่ใช้ JS เป็นภาษาสคริปต์หรือไม่ " ไม่มีอะไรในคำถามที่พูดถึงทางเลือกbashหรือzsh(ฯลฯ )
roaima
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.