Có bất kỳ IDE kịch bản shell nào được biết đến và sử dụng tốt cho Un * x không?


23

Có bất kỳ IDE nào nhắm vào kịch bản shell, cụ thể là các tập lệnh bash và zsh không? Điều này có nghĩa là có tô sáng cú pháp cho các kịch bản shell và quan trọng hơn là các môi trường gỡ lỗi với các tính năng như điểm dừng, kiểm tra và sửa đổi biến, v.v., giống như các ngôn ngữ có sẵn cho các ngôn ngữ lập trình thông thường như Python, Java và C.

Ví dụ, microsft Windows Powershell có các IDE như Powershell PlusPowerGui .

Googling đã đưa ra một sự kết hợp của ShellEd , một plugin Eclipse để chỉnh sửa các tập lệnh shell và BashEclipse , một trình gỡ lỗi Bash hoạt động với ShellEd; Tôi chưa thử.

Có bất kỳ IDE kịch bản shell nào khác cho Un * x tương tự như kết hợp này không? Có ai có một số kinh nghiệm với họ?


10
Tôi đã không downvote nhưng bất cứ ai đã làm, đã làm như vậy bởi vì bạn không đặt câu hỏi. Câu hỏi duy nhất trong bài viết của bạn có thể được trả lời bằng Có / Không. Bạn thực sự đang hỏi gì? Làm thế nào để các chương trình này hoạt động? Họ làm gì? Bạn đang cố gắng để làm chính xác?
terdon

10
Một IDE bash? Phân hạch hạt nhân để đun sôi nước để uống trà ...
jasonwryan

5
Trên thực tế, có một trình gỡ lỗi bash là một ý tưởng rất tốt - giống như với bất kỳ ngôn ngữ lập trình nào, mã của bạn sẽ tốt hơn nếu bạn bước qua từng dòng trong trình gỡ lỗi một cách chậm rãi, kiểm tra các biến, suy nghĩ về những gì mã đang làm, v.v. Trình gỡ lỗi là cách tốt nhất để làm điều đó, ngay cả khi chương trình hoặc tập lệnh của bạn không có lỗi. Bạn có thể nhận bashdb trong hầu hết các bản phân phối, điều này sẽ cho phép bạn làm điều đó trong chế độ văn bản. Ngoài ra, trình gỡ lỗi đồ họa DDD cũ có thể được tạo để hoạt động với bashdb để bạn có trải nghiệm "trực quan" hơn.
Stablesog

1
Vâng, chắc chắn người ta có thể làm điều đó. Và nhiều người làm, và đó là cách họ có được trong nhiều năm. Nếu điều đó phù hợp với bạn, tôi sẽ không cố gắng thuyết phục bạn bằng cách khác. Theo tôi, một cách tiếp cận kém hơn là đánh thuế não bộ với các nhiệm vụ có giá trị thấp (như theo dõi tinh thần các giá trị của các biến, v.v.). Ý tưởng về một UI gỡ lỗi tốt là giải phóng những chu trình đó để suy nghĩ về chương trình. Theo kinh nghiệm của tôi, vấn đề này - bạn có nhiều sự chú ý hơn để tập trung suy nghĩ về những gì chương trình đang làm nếu bạn chi tiêu ít hơn cho những việc đó.
Stablesog

1
Đối với những người trong chúng ta có ấm điện hoặc phạm vi ở Mỹ hoặc châu Âu, một phần tốt của thế hệ điện phụ tải của chúng tôi được cung cấp bởi các nhà máy điện hạt nhân, vì vậy khi chúng tôi đun sôi nước để uống trà, ít nhất là một phần.
Andrew Janke

Câu trả lời:


14

Tôi sẽ không nói rằng nó là nổi tiếng hoặc được sử dụng tốt nhưng bạn có thể có một cái nhìn về basheclipse :

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

Tôi phải thừa nhận rằng tôi không có kinh nghiệm với basheclipse và thậm chí không cài đặt được do phiên bản nhật thực không khớp.

Mặt khác, tôi đang sử dụng các tính năng gỡ lỗi cụ thể của bash và ksh93, đặc biệt là các tính năng gỡ lỗi trap ERRtrap DEBUGkhông phải là trình gỡ lỗi dựa trên chúng kshdbbashdb


Tôi thấy khá mỉa mai khi ảnh chụp màn hình của bạn là một cửa sổ kiểu Windows.
Agi Hammerthief

@NigelNquande Thành thật mà nói, tôi không phải là người dùng basheclipse (hoặc nhật thực cho vấn đề đó). Tôi chắc chắn sử dụng các tính năng gỡ lỗi được cung cấp bởi ksh93 và bash, nhưng không có GUI. Ảnh chụp màn hình này được lấy từ trang web basheclipse. Nó có thể là một số chủ đề gnome hoặc chỉ là một ảnh chụp màn hình Windows 7 thực sự với dòng OS = "cygwin".
jlliagre

Chà, IMO, nếu bạn định làm gì đó, hãy làm nó với đôi bốt, không phải là một nửa (nhưng đó không phải ở đây cũng không phải với bất kỳ ai khác). Đối với tôi, bashtrên Windows có vẻ như là một nửa quyến rũ khi nó hoạt động hoàn toàn tốt trong GNU / Linux.
Agi Hammerthief

@NigelNquande Như tôi đã viết, đây không phải là ảnh chụp màn hình của tôi. Trong mọi trường hợp, tôi chỉ sử dụng bash trên Windows khi tôi không có lựa chọn nào khác và cygwinkhá hiệu quả để ẩn hệ điều hành cơ bản.
jlliagre

1
@ user7000 Tôi đã viết và thậm chí không cài đặt được do phiên bản nhật thực không khớp nhưng tôi không nhớ đó là phiên bản nhật thực nào. Được ghi lại để làm việc với Eclipse 4.5.2: sourceforge.net/projects/basheclipse/files/?source=navbar
jlliagre

8

Một IDE được xây dựng có mục đích sẽ đánh bại mục đích của kịch bản shell, chưa kể đến việc gần như không thể thực hiện được, bởi vì hầu hết các shell nào đang gọi các lệnh bên ngoài - làm thế nào để bạn gỡ lỗi điều đó? Gỡ lỗi với các điểm kiểm tra là phản trực giác đối với hệ vỏ - tập lệnh shell thường hoạt động mạnh trên các tệp và do đó có tác dụng phụ phá hủy đối với mỗi cuộc gọi. Scripting BY DESIGN hoạt động theo từng dòng, vì vậy "môi trường" của bạn thực sự là thiết bị đầu cuối - bạn luôn có thể lặp lại các biến, môi trường của bạn luôn ở đó cho bạn, không có "luồng quy định" mà bạn sẽ phải gián đoạn. Bạn dần dần làm bất cứ điều gì bạn muốn làm, từng dòng một, kiểm tra mỗi lần nếu bạn có những gì bạn muốn và sau đó dán các dòng này vào một tập lệnh để sử dụng lại.

Đối với các ngôn ngữ kịch bản đủ điều kiện (Python, Perl, v.v.), bạn có tất cả những thứ này, nhưng bash / zsh / ksh / ... là "chất keo" tương tác cho các lệnh khác và là trình gỡ lỗi của riêng chúng.

Tuy nhiên, hầu hết các trình soạn thảo văn bản sẽ làm nổi bật mã cho bạn và emacssẽ (với điều kiện bạn tìm đúng gói, tôi không bao giờ bận tâm đến việc làm điều đó cho các kịch bản shell) cung cấp hoàn thành từ khóa có thể lập trình. Tôi tin rằng vicũng có thể làm điều đó (đừng bắt đầu một cái flamewar ở đây).


2
Làm thế nào để bạn xác định một "ngôn ngữ kịch bản đủ điều kiện?"
Trevor Sullivan

1
@TrevorSullivan theo cách riêng của mình. Đừng, làm ơn, cho vào sự ghét bỏ.
Det

1
@Det: Đó là một câu hỏi chính đáng - nếu tất cả chúng ta không thể đồng ý về một định nghĩa chung, cụ thể của cụm từ, thì chúng ta cũng có thể không có một cuộc thảo luận về nó. Tôi chỉ tò mò ý nghĩa của cụm từ đó là gì.
Trevor Sullivan

3
Tôi không đồng ý IDE đánh bại mục đích của shell scripting. Bạn có thể muốn dọn sạch các tập lệnh shell của mình (ví dụ: các biến ngoại lai nội tuyến, phát hiện các biến không sử dụng - đó là điều tôi đang cố gắng để làm sạch các tập lệnh System V init của mình đang bị kéo dài một cách không cần thiết, đặc biệt là khi được sao chép từ các ví dụ hiện có).
Sridhar Sarnobat

2
Tôi cũng sẽ thêm điều đó và IDE cung cấp intellisense hoặc các công cụ khác để tôi không phải tiếp tục googling hoặc nhìn vào các trang man để ghi nhớ một số thứ. Nó cũng cho phép tôi giữ tất cả các tập lệnh của mình cùng nhau trong một dự án, bước qua các dòng, kiểm tra các đối số đến, các vòng kiểm tra và các công tắc, phá vỡ một đường ống để kiểm tra, v.v.
cjbarth 22/12/17

2

Tôi cũng tán thành ý tưởng sử dụng IDE cho các tập lệnh bash.

Người ta có thể viết các tập lệnh bash bằng sổ ghi chép jupyter.

Máy tính xách tay jupyter có thể được cài đặt qua anaconda trong khi hạt nhân bash cho máy tính xách tay jupyter (hoặc jupyterlab) có thể được cài đặt bằng các lệnh sau ( nguồn ):

pip install bash_kernel

python -m bash_kernel.install

Sau đó, bạn có thể chọn bash trên một trình khởi chạy mới của trình điều hướng anaconda, như hiển thị bên dưới.

Điều duy nhất là (theo như tôi biết) nó không hoạt động với các lệnh mà bạn phải nhập vào dấu nhắc, chẳng hạn như readhoặc bất kỳ đối số nào khác mà bạn vượt qua sau khi gọi tập lệnh. Nhưng khác hơn, nó hoạt động khá tốt.

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


1

Tôi gặp phải vấn đề này, có nghĩa là tôi đã tìm kiếm bash script IDE, có rất nhiều plugin trên populare IDE giống như nhật thực và nhiều thứ khác. nhưng tìm thấy rất nhiều công việc xử lý IDE chỉ để xây dựng các tập lệnh bash nhỏ. mặt khác làm việc với các biên tập viên gây ra rất nhiều lỗi cú pháp và lãng phí thời gian, chưa kể nó không vui chút nào.

Vì vậy, tôi đã tìm thấy một công cụ tập lệnh bash trực tuyến để xây dựng tập lệnh, nó được gọi là http://bashops.net , nó trực tuyến, ngay lập tức có thể bắt đầu làm việc với việc xây dựng tập lệnh bash, mà không cần bận rộn trong bất kỳ cài đặt nào.


1

Rogalmic đã viết các plugin VSCode cho bashdbzshdb .

Chúng dựa trên trình gỡ lỗi của tôi cho bashzsh , vì vậy chúng xử lý rất nhiều trường hợp cạnh thiếu nói về trình gỡ lỗi nhật thực cho bash.


0

Tôi muốn đề xuất phiên bản Cộng đồng PyCharm với plugin BashSupport . Điều này có chức năng IDE tuyệt vời với intellij intellisense.

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.