Чи є якісь добре відомі і добре використані сценарії оболонки IDE для Un * x?


23

Чи є якісь IDE, орієнтовані на сценарій оболонок, зокрема сценарії bash та zsh? Це означає, що підсвічування синтаксису для скриптів оболонки та ще важливіше налагодження середовищ з такими функціями, як точки прориву, змінна перевірка та модифікація тощо, як і ті, що доступні для звичайних мов програмування, таких як Python, Java та C.

Наприклад, Microsft Windows Powershell має такі IDE, як Powershell Plus та PowerGui .

Googling створив комбінацію ShellEd , плагіна Eclipse для редагування скриптів оболонки, і BashEclipse , відладчика Bash, який працює з ShellEd; Я ще цього не пробував.

Чи є якісь інші сценарії оболонок IDE для Un * x, подібні до цього комбо? Хтось має з ними досвід?


10
Я не спростував, але хто б це не зробив, зробив це, тому що ви не ставите запитання. На єдине запитання у вашій публікації можна відповісти так / ні. Що ви насправді запитуєте? Як працюють ці програми? Що вони роблять? Що ви намагаєтеся робити саме?
тердон

10
Баш IDE? Ядерний поділ для кип'ятіння води для чаю ...
Jasonwryan

5
Насправді наявність налагоджувача bash - це дуже гарна ідея - так само, як і в будь-якій мові програмування, ваш код буде кращим, якщо ви повільно переходитимете через кожний рядок у відладчику, вивчали змінні, думали про те, що робить код тощо. Налагоджувач - найкращий спосіб зробити це, навіть якщо у вашій програмі чи сценарії немає помилок. Ви можете отримати bashdb у більшості дистрибутивів, що дозволить вам це робити в текстовому режимі. Крім того, графічний налагоджувач DDD, що старіє, може бути змушений працювати з bashdb, так що у вас є більш "візуальний" досвід.
Stabledog

1
Так, звичайно, можна це зробити. І багато хто робить, і ось так вони роблять роками. Якщо це вам підходить, я б не намагався переконати вас в іншому. На мій погляд, його неповноцінний підхід, який оподатковує мозок невисокими завданнями (наприклад, розумовим відстеженням значень змінних тощо). Ідея хорошого інтерфейсу налагодження - це звільнення цих циклів для роздумів про програму. На мій досвід, це важливо - у вас є більше уваги, щоб зосередитись на тому, щоб думати про те, що робить програма, якщо ви витрачаєте менше на такі речі.
Stabledog

1
Для тих, хто має електричні чайники або водонагрівачі в США чи Європі, значна частина нашого генератора електричної енергії постачається атомними електростанціями, тому, коли ми кип'ячемо воду для чаю, ми використовуємо ядерний поділ, принаймні частково.
Ендрю Янке

Відповіді:


14

Я б не сказав, що це або добре відомо, або добре використовується, але ви, можливо, будете мати на увазі помилок :

введіть тут опис зображення

Я мушу визнати, що у мене немає досвіду роботи з basheclipse і навіть не вдалося встановити його через невідповідність версії затемнення.

З іншого боку, я використовую Баш і ksh93 конкретні налагодження функцій, особливо trap ERRі trap DEBUGті , але не отладчики на їх основі kshdb і bashdb


Я вважаю досить іронічним, що ваш знімок екрана має вікно в стилі Windows.
Agi Hammerthief

@NigelNquande Якщо чесно кажучи, я не є користувачем-сколотниками (або затемненням з цього приводу). Я напевно використовую функції налагодження, надані ksh93 та bash, але без GUI. Цей скріншот зроблений з сайту baheclipse. Це може бути якась тема gnome або просто справжній скріншот для Windows 7 з урахуванням рядка OS = "cygwin".
jlliagre

Ну, ІМО, якщо ви збираєтесь щось робити, робіть це з чобітками, а не з півгодини (але це ні тут, ні там ні для кого іншого). Мені bashздається , що в Windows здається пів- седу, коли він ідеально працює в GNU / Linux.
Agi Hammerthief

@NigelNquande Як я писав, це не моє скріншот. У будь-якому випадку, я використовую bash тільки в Windows, коли у мене немає вибору і cygwinє досить ефективним, щоб приховати основну ОС.
jlliagre

1
@ user7000 Я написав і навіть не зміг його встановити через невідповідність версії затемнення, але я не пам’ятаю, якою це була версія затемнення. Документовано, щоб працювати з Eclipse 4.5.2, хоча: sourceforge.net/projects/basheclipse/files/?source=navbar
jlliagre

8

Цілеспрямований IDE начебто переможе мету сценаріїв оболонок, не кажучи вже про те, що це майже неможливо зробити, оскільки більшість того, що оболонка робить, викликає зовнішні команди - як це налагодити? Налагодження контрольних точок є протиінтуїтивним для оболонки - сценарії оболонки зазвичай сильно діють на файли і, таким чином, мають деструктивні побічні ефекти при кожному виклику. Сценарій BY DESIGN працює лінійно за рядком, тому ваше "оточення" - це власне сам термінал - ви завжди можете перегукувати змінні, ваше оточення завжди для вас, немає "передбаченого потоку", який би вам довелося перервати. Ви поступово робите все, що хочете робити, по черзі, тестуючи кожен раз, якщо отримали те, що хотіли, а потім вставляєте ці рядки в сценарій, щоб знову використовувати.

Для повністю кваліфікованих мов сценаріїв (Python, Perl тощо) у вас є все це, але bash / zsh / ksh / ... є інтерактивним "клеєм" для інших команд і є їх власними налагоджувачами.

Однак більшість текстових редакторів виділить код для вас і emacsнададуть (за умови, що ви знайдете правильні пакети, я ніколи не заважав робити це для скриптів оболонок) забезпечити програмоване завершення ключових слів. Я вважаю vi, що це теж можна зробити (не запускайте тут вогненної війни).


2
Як ви визначаєте "повністю кваліфіковану мову сценаріїв?"
Тревор Салліван

1
@TrevorSullivan по-своєму. Не будьте, будь-ласка, ненависними.
Дет

1
@Det: Це було законним питанням - якщо ми не можемо всі домовитися про загальне, конкретне визначення фрази, то ми можемо також не мати дискусії з цього приводу. Мені просто цікаво, що означає ця фраза.
Тревор Салліван

3
Я не згоден, щоб IDE перемогли мету сценаріїв оболонок. Можливо, ви захочете очистити свої сценарії оболонки (наприклад, вбудовані сторонні змінні, виявити невикористані змінні. Це те, що я намагаюся зробити при очищенні моїх скриптів System V Init, які надмірно стають довгими, особливо коли вони дублюються з існуючих прикладів).
Шрідхар Сарнобат

2
Я також додаю, що і IDE надає інтелігенцію чи інші інструменти, тому мені не потрібно тримати гугл або перегляд сторінок, щоб запам'ятати деякі речі. Це також дозволяє мені зберігати всі мої сценарії разом у проекті, переходити рядки, перевіряти вхідні аргументи, тестові петлі та комутатори, розбивати трубу для перевірки тощо
cjbarth

2

Я також схвалюю ідею використання IDE для скриптів bash.

Можна писати сценарії bash, використовуючи зошит jupyter.

Блокнот юпітера можна встановити через анаконда, тоді як ядро ​​bash для ноутбука з юпітера (або jupyterlab) може бути встановлено за допомогою таких команд ( джерело ):

pip install bash_kernel і

python -m bash_kernel.install

Після цього ви можете вибрати bash на новому запуску екземпляра анаконди-навігатора, як показано нижче.

Єдине, що (наскільки я знаю) він не працює з командами, які вам доведеться вводити в підказку, наприклад, readабо будь-яким іншим аргументом, який ви передаєте після виклику сценарію. Але крім цього, він працює досить добре.

введіть тут опис зображення


1

Я зіткнувся з цією проблемою, я означав, що я шукав ID-скрипт bash, є багато плагінів для популяризації IDE, як eclipse та багато інших. але знайти багато роботи над IDE просто для створення невеликих скриптів bash. з іншого боку, робота з редакторами спричиняє багато синтаксичних помилок і марнування часу, не кажучи вже про те, що це зовсім не цікаво.

тому я знайшов онлайн-інструмент bash script для створення скриптів, він називається http://bashops.net , це онлайн, одразу можна розпочати роботу над побудовою bash script, не зайнявшись жодною установкою.


1

Rogalmic написав плагіни VSCode для bashdb та zshdb .

Вони засновані на моїх налагоджувачах для bash та zsh , тому вони обробляють безліч крайових випадків, яких не вистачає, скажімо, відладчика затемнення для bash.


0

Я хотів би запропонувати PyCharm Community Edition із плагіном BashSupport . Це чудова функціональність IDE з інтелігенцією Intellij.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.