Có vỏ JavaScript không?


30

Gần đây tôi đã làm việc với JS và tôi rất nhiệt tình với ngôn ngữ này. Tôi biết rằng có node.js để chạy JS ở phía máy chủ, nhưng có một shell sử dụng JS làm ngôn ngữ kịch bản không? Nếu điều đó tồn tại, làm thế nào nó có thể sử dụng và ổn định?

Câu trả lời:


17

Điều này có vẻ mong muốn với bạn?

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

Nếu vậy, ShellJS có thể thú vị, đó là

một triển khai di động (bao gồm Windows) các lệnh shell Unix trên API Node.js.

Tôi không chắc chắn nếu điều này có thể được sử dụng như một vỏ đăng nhập đầy đủ tính năng, mặc dù. (Có thể với một số gói?)

Bạn có thể lập luận rằng nó không thực sự là một cái vỏ, nhưng bạn có biết TermKit không? Nó được làm bằng Node.js + Webkit, bạn có thể sử dụng JS để mở rộng nó (tôi đoán vậy); ngôn ngữ shell vẫn là Bash (-ish).


Chà, trông thật tuyệt! Tôi sẽ thử.
J-unior

Về mặt kỹ thuật tôi không thực sự coi đây là một cái vỏ bởi vì nó không tuân theo cmd argumentscú pháp. Ví dụ: pshthêm cú pháp như vậy vào ngôn ngữ perl theo cách hiểu của tôi để nó xuất hiện giống như một vỏ sò điển hình gnp.github.io/psh Có thể có một ví dụ ngược lại nhưng tôi chưa tìm thấy nó.
William

Làm thế nào tôi có thể đặt cái này làm vỏ đăng nhập của tôi? Một lần nữa tôi muốn một cái gì đó như thế này nhưng tôi không tin đây là nó.
William

Vẫn bash-ish, chúng ta có thể sử dụng sed({i:1}, 'BUILD_VERSION', 'v0.1.2', file)thay thế. Sẽ tốt hơn để sử dụng các chức năng không đồng bộ với chờ đợi, vì vậy song song sẽ nhanh hơn.
inf3rno

Liên kết ShellJS bị hỏng.
yO_


8

Nếu bạn đang sử dụng Ubuntu hoặc bất kỳ hệ thống dựa trên debian nào khác, bạn có thể cài đặt tê giác (từ Mozilla.org).

sudo apt-get install rhino

Nó cung cấp js thông qua các lựa chọn thay thế:

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

Vì vậy, gọi tê giác hoặc js sẽ cung cấp cho bạn trình bao JavaScript.

Chỉnh sửa (2014-06-30):

tê giác là tốt để nhanh chóng kiểm tra một số mã javascript trong một tệp, nhưng nó không phải là một vỏ tương tác, vì vậy nó không hỗ trợ kiểu chỉnh sửa đường đọc GNU. Đối với công việc tương tác, bạn có thể thíchnodejs: trên Ubuntu / debiansudo apt-get install nodejs. Điều này sẽ cung cấp mộtjsvỏtương tác nhiều hơn(gọi bằng cách sử dụng lệnhjs) trong đó bạn có thể chỉnh sửa các dòng và nhớ lại lịch sử bằng các phím mũi tên lên / xuống. Để biết danh sách tùy chọn dài hơn, hãy xem https://developer.mozilla.org/en-US/docs/Web/JavaScript/Shells


0

Trong Chrome và Firefox, nếu bạn nhấn F12, nó sẽ hiển thị các công cụ dành cho nhà phát triển. Ở đó bạn có thể tìm thấy một tab có tên là console, nơi bạn có thể nhập và kiểm tra các tập lệnh JavaScript. Nó đã hoàn thành mã và các tính năng khác nữa.


5
Tôi nghĩ bạn đã không hiểu câu hỏi. Tôi đã hỏi về UNIX shell. Nhưng cảm ơn vì đã sẵn sàng giúp đỡ.
J-unior

1
Điều này trả lời câu hỏi, " có một cái vỏ sử dụng JS làm ngôn ngữ kịch bản không? ". Không có gì trong câu hỏi nói về một sự thay thế cho bashhoặc zsh(v.v.)
roaima
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.