Làm thế nào để bạn chạy tập lệnh JavaScript thông qua Terminal?


272

Ví dụ, nếu bạn đang chạy một kịch bản Python bạn nên gõ python filename.py hoặc nếu bạn muốn chạy một chương trình C làm cho tên tập tin sau đó ./ filename . Làm thế nào để bạn làm điều này với các tập tin .js ?


1
JS không phải là ngôn ngữ có mục đích chung, vậy tại sao bạn muốn làm điều này? Bao gồm tệp .js của bạn vào trang .htm (l) thông qua thẻ <script>, sau đó mở trang trong trình duyệt của bạn.
helpermethod

3
@BLUC Nó được gọi là thực thi.
helpermethod

thực thi, ứng dụng, chương trình hoặc nhị phân. Và trên một lưu ý hữu ích hơn, bạn sẽ cần một trình thông dịch JavaScript, như V8 hoặc Rhino hoặc một trong 1000 cái khác mà tôi quên.
Corbin

9
@Oliver Weiler nó không dễ áp ​​dụng trong các tình huống chung như một số ngôn ngữ khác, nhưng tôi tin rằng nó có thể có các ứng dụng bên ngoài các trang web :).
Corbin

Một ứng dụng JavaScript có trong Unity 3D
Bradman175

Câu trả lời:


123

Bạn sẽ cần một công cụ JavaScript (chẳng hạn như Rhino của Mozilla ) để đánh giá tập lệnh - chính xác như bạn làm với Python, mặc dù các công cụ sau có phân phối chuẩn.

Nếu bạn đã cài đặt Rhino (hoặc thay thế) và trên đường dẫn của bạn, thì việc chạy JS thực sự có thể đơn giản như

> rhino filename.js

Mặc dù vậy, đáng chú ý là mặc dù JavaScript chỉ là ngôn ngữ theo cách riêng của nó, rất nhiều tập lệnh cụ thể cho rằng chúng sẽ thực thi trong môi trường giống như trình duyệt - và vì vậy hãy thử truy cập các biến toàn cục như location.hrefvà tạo đầu ra bằng cách nối thêm Đối tượng DOM chứ không phải gọi print.

Nếu bạn đã nắm giữ một tập lệnh được viết cho một trang web, bạn có thể cần phải bọc hoặc sửa đổi nó một chút để cho phép nó chấp nhận các đối số từ stdin và ghi vào thiết bị xuất chuẩn. (Tôi tin rằng Rhino có một chế độ để mô phỏng các vars toàn cầu của trình duyệt tiêu chuẩn giúp ích rất nhiều, mặc dù hiện tại tôi không thể tìm thấy các tài liệu cho việc này.)


4
FYI, sự khác biệt giữa tê giác và spidermonkey (cả hai đều là sáng tạo của Mozilla): stackoverflow.com/questions35363909/rhino-vs-spidermonkey
Kelvin

3
Trên Debian / Ubuntu: 'apt-get install tê giác' và nhị phân được gọi là js.
pevik

Tôi không biết bạn có cảm thấy như vậy không, nhưng tôi thấy rhyno khá mỏng manh và lỗi ... (chạy Ubuntu 14.04)
Ionică Bizău

1
Công việc này đối với tôi, sử dụng in ("tin nhắn") để gỡ lỗi hơn là sử dụng console.log ()
Arefe

391

Một câu trả lời khác sẽ là NodeJS!

Node.js là một nền tảng được xây dựng trên thời gian chạy JavaScript của Chrome để dễ dàng xây dựng các ứng dụng mạng nhanh, có thể mở rộng. Node.js sử dụng mô hình I / O không chặn theo sự kiện, làm cho nó nhẹ và hiệu quả, hoàn hảo cho các ứng dụng thời gian thực sử dụng nhiều dữ liệu chạy trên các thiết bị phân tán.

Sử dụng thiết bị đầu cuối, bạn sẽ có thể bắt đầu bằng cách sử dụng nodelệnh.

$ node
> 2 + 4
6
> 

Lưu ý : Nếu bạn muốn thoát chỉ cần gõ

.exit

Bạn cũng có thể chạy một tệp JavaScript như thế này:

node file.js

«Cài đặt NGAY BÂY GIỜ»


@NadirSampaoli Vâng, đó là một công nghệ mới thực sự tuyệt vời!
Ionică Bizău

Nhược điểm duy nhất (nếu bạn muốn gọi như vậy) là nút đó luôn ở "chế độ nghiêm ngặt". Nó có đúng không?
Nadir Sampaoli

@NadirSampaoli Hmmm, tôi không chắc. Xem câu hỏi này: stackoverflow.com/q/9031888/1420197
Ionică Bizău

10
@NadirSampaoli Tôi nghi ngờ rằng nó được coi là "nhược điểm". Chế độ nghiêm ngặt là tốt hơn cho tất cả mọi người.
Croissant Paramag từ

Bạn có lời khuyên nào về việc gói javascript vào lệnh 'người tiêu dùng' cuối cùng, người dùng không cần phải quan tâm? Như $> sudo apt-get install myFancyCmdtheo sau $>myFancyCmd hello.jpg -w 1234?
Frank Nocke

133

Nếu bạn có máy Mac, bạn có thể nhận jscbảng điều khiển javascript trong OS X (Terminal) bằng cách nhập

/System/Library/Frameworks/JavaScriptCore.framework/Versions/Current/Resources/jsc

trong Terminal.app .

Bạn cũng có thể chạy một trong các tập lệnh .js của mình bằng cách thêm tên của nó làm đối số cho jsc, như thế này:

jsc your_awesome_script_name.js

Lưu ý : Tôi sử dụng console.log()trong quá trình phát triển nhưng jsc cần debug()chức năng thay thế.

Trên Ubuntu, bạn có một số shell ECMAScript đẹp theo ý của bạn. Giữa chúng, đáng để nhắc đến SpiderMonkey . Bạn có thể thêm nó bằng cáchsudo apt-get install spidermonkey

Trên Windows như những người khác nói bạn có thể dựa vào cscriptwscripttrực tiếp xây dựng trên HĐH.

Tôi cũng sẽ thêm một cách suy nghĩ khác vào vấn đề , nếu bạn có thời gian và muốn tìm hiểu những điều mới, tôi muốn đề cập đến tập lệnh cà phê có trình biên dịch / bảng điều khiển riêng và cung cấp cho bạn Javascript siêu chính xác. Bạn cũng có thể dùng thử trên trình duyệt của mình (liên kết "thử coffeescript").


Ubuntu không hỗ trợ SpiderMonkey kể từ ngày 10.04. (Bạn có biết tại sao không? Askubfox.com/q/180572/482285 )
maciek

1
@maciek SpiderMonkey vẫn có sẵn cho Ubuntu nhưng dưới một cái tên khác: packages.ubuntu.com/trusty/libmozjs-24-bin
microspino

1
@maciek ... vì vậy bạn có thể làm: sudo apt-get install libmozjs-24-binvà việc sử sudo ln -sf /usr/bin/js24 /usr/bin/jsdụng nó với js trong vỏ của bạn.
microspino

Nhân tiện, console.loghoạt động tốt với nút , được cài đặt trên Ubuntu với sudo apt install nodejs. Hoàn hảo cho một console.log('hey world, here I am')ứng dụng kinda, mà bạn có thể chạy với node hey.js.
Nagev

30

Sử dụng node.js cho điều đó, đây là ví dụ về cách cài đặt nodebằng cách sử dụng brewtrên mac:

brew update && install node

Sau đó chạy chương trình của bạn bằng cách gõ node filename.jsvà bạn có thể sử dụng console.log()cho đầu ra.


Điều này kết hợp tuyệt vời với github.com/remy/nodemon wich sẽ xem bất kỳ tệp javascript nào và chạy lại nó trên bất kỳ thay đổi nào. Vì vậy, chỉ cần chạy nó với gật đầu yourjavascript.js
Denis

4
Ý bạn là brew install node sao? install nodetự nó sẽ không thực sự làm bất cứ điều gì.
numbermaniac

11

Thật thô thiển, nhưng bạn có thể mở bảng điều khiển Javascript trong Chrome (Ctrl + Shift + J) và dán nội dung văn bản của tệp * .js và nhấn Enter.


4
Thật ra điều đó không thô thiển, và tôi đã rất ngạc nhiên khi không ai nói đến console.
Eduard Florinescu

11

Nếu bạn đang sử dụng MacBook.

  1. Thiết lập node.js trong hệ thống của bạn và mở thiết bị đầu cuối
  2. Điều hướng đến thư mục, nơi lưu tệp js.
  3. Để thực thi chạy node <filename.js>

ví dụ, nếu tên tệp được script.jschạynode script.js


1
nút gần với javascript nhưng nó không chính xác là javascript, ví dụ: javascript không hỗ trợ tệp IO, mặc định cũng có chức năng yêu cầu; nó có thể không phải là một cách tốt để kiểm tra tệp javascript
Weijing Jay Lin

5

Ngoài ra, nếu bạn chỉ muốn chơi xung quanh với Javascript, một tùy chọn tốt trong trình duyệt là Javascript Lab của Codecademy .

Họ cũng có Python và Ruby IDE.


4

Nếu bạn đang dùng PC Windows, bạn có thể sử dụng WScript.exe hoặc CScript.exe

Chỉ cần lưu ý rằng bạn không ở trong môi trường trình duyệt, vì vậy những thứ như document.writehoặc bất cứ thứ gì dựa vào windowđối tượng sẽ không hoạt động, như thế nào window.alert. Thay vào đó, bạn có thể gọiWScript.Echo công cụ đầu ra để nhắc nhở.

http://msdn.microsoft.com/en-us/l Library / 9bbdkx3k (VS85) .aspx


Có một cái cho Ubuntu, Google Chrome không?
BLUC

Bạn nên đặt phần thông tin quan trọng đó trong câu hỏi. Xin lỗi, tôi là một người đam mê Windows - Tôi không biết nhiều về Ubuntu. Ngoài ra, bạn có thể sẽ không có quyền truy cập vào Google Chrome khi chạy javascript từ dấu nhắc shell của Ubuntu. EDIT: Câu trả lời của Andrzej Doyle là cách phù hợp với bạn.
Anders Tornblad

4

Tôi cũng đã cố gắng nghiên cứu điều đó nhưng thay vào đó cuối cùng lại sử dụng jsconsole.com bởi Remy Sharp (anh ấy cũng đã tạo ra jsbin.com). Tôi đang chạy trên Ubuntu 12.10 vì vậy tôi phải tạo một biểu tượng đặc biệt nhưng nếu bạn đang sử dụng Windows và sử dụng Chrome, chỉ cần đi tới Công cụ> Tạo Lối tắt ứng dụng (lưu ý rằng điều này không hoạt động tốt, hoặc trong trường hợp của tôi, trên Ubuntu). Trang web này hoạt động rất giống với jscbảng điều khiển Mac : thực sự nó cũng có một số tính năng thú vị (như tải thư viện / mã từ một URL) mà tôi đoán là jsckhông.

Hi vọng điêu nay co ich.



2

Tất cả các câu trả lời ở trên là rất lớn, tôi thấy có một điều mất tích và có thể được xem xét để chạy javascripts(*.js)tập tin, không liên quan anh trai của javascriptcác Java.

JDKđưa ra hai công cụ hay, có thể được sử dụng để thực thi javascripts. Dưới đây là lệnh đi như thế nào. Hãy chắc chắn để điều hướng đến JDK\bin.

 jjs example.js

Nó đi kèm với một commmandcông cụ khác đi như thế này-

 jrunscript example.js

Tôi hy vọng điều này có thể hữu ích cho những người khác.


1

Đây là một giải pháp "bùng binh" nhưng bạn có thể sử dụng ipython

Bắt đầu máy tính xách tay ipython từ thiết bị đầu cuối:

$ ipython notebook

Nó sẽ mở trong một trình duyệt nơi bạn có thể chạy javascript

nhập mô tả hình ảnh ở đây


0

Bạn cũng có thể sử dụng phantomjsTải xuống ph Phantomjs tùy thuộc vào hệ thống (trường hợp của tôi là Max OSX) từ ph Phantomjs.org . Bạn nên đặt đường dẫn đến thư mục cài đặt ph Phantomjs trên đầu tệp javascript của bạn. ví dụ. #!./bin/phantomjsLưu mã của bạn. Đi đến thiết bị đầu cuối nơi javascript của bạn được lưu và bạn có thể chạy bằng> phantomjs filename.js


0

Về mặt kỹ thuật, Node.js không phải là JavaScript phù hợp như chúng ta biết, vì không có Mô hình Đối tượng Tài liệu (DOM) . Chẳng hạn, các tập lệnh JavaScript chạy trong trình duyệt sẽ không hoạt động. Ở tất cả. Giải pháp sẽ là chạy JavaScript với trình duyệt không đầu. May mắn thay, có một dự án vẫn đang hoạt động: Mozilla Firefox có chế độ không đầu .

https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Headless_mode

$ /Applications/Firefox.app/Contents/MacOS/firefox -headless index.html
*** You are running in headless mode.

0

Tất cả những gì bạn phải làm để chạy tệp js qua bash là loại: $ node filename.js

Điều này tương tự như trong python, khi bạn làm: $ python filename.py

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.