Существуют ли какие-либо хорошо известные и широко используемые IDE-скрипты для Un * x?

23

Существуют ли какие-либо среды разработки, предназначенные для сценариев оболочки, в частности сценариев bash и zsh? Это означает наличие подсветки синтаксиса для сценариев оболочки и, что более важно, отладочной среды с такими функциями, как точки останова, проверка и модификация переменных и т. Д., Подобно тем, которые доступны для обычных языков программирования, таких как Python, Java и C.

Например, в Microsoft Powershell есть интегрированные среды разработки, такие как Powershell Plus и PowerGui .

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

Существуют ли другие среды разработки сценариев оболочки для Un * x, подобные этой комбинации? У кого-нибудь есть опыт работы с ними?

vfclists
источник
10
Я не понизил голос, но кто бы то ни сделал, сделал это, потому что вы не задаете вопрос. На единственный вопрос в вашем посте можно ответить Да / Нет. Что ты на самом деле спрашиваешь? Как работают эти программы? Что они делают? Что вы пытаетесь сделать именно?
Terdon
10
Bash IDE? Ядерное деление, чтобы вскипятить воду для чая ...
jasonwryan
5
На самом деле, иметь отладчик bash - очень хорошая идея - так же, как и с любым языком программирования, ваш код будет лучше, если вы будете медленно проходить по каждой строке в отладчике, изучать переменные, думать о том, что делает код, и т. Д. Отладчик - лучший способ сделать это, даже если ваша программа или скрипт не содержат ошибок. Вы можете получить bashdb в большинстве дистрибутивов, что позволит вам делать это в текстовом режиме. Кроме того, устаревший графический отладчик DDD можно настроить для работы с bashdb, чтобы вы имели более «визуальный» опыт.
Конюшня
1
Да, конечно, это можно сделать. И многие это делают, и вот как они живут годами. Если это вас устраивает, я бы не стал убеждать вас в обратном. На мой взгляд, это плохой подход, который нагружает мозг задачами с низкой стоимостью (например, умственное отслеживание значений переменных и т. Д.). Идея хорошего интерфейса отладчика освобождает эти циклы для размышлений о программе. По моему опыту, это важно - у вас больше внимания, чтобы сосредоточиться на размышлениях о том, что делает программа, если вы тратите меньше ее на такие вещи.
Конюшня
1
Для тех из нас, у кого есть электрические чайники или кухонные плиты в США или Европе, значительная часть нашей генерации электроэнергии с базовой нагрузкой обеспечивается атомными электростанциями, поэтому, когда мы кипятим воду для чая, мы используем ядерное деление, по крайней мере, частично.
Эндрю Янке

Ответы:

14

Я бы не сказал, что он хорошо известен или используется, но вы можете взглянуть на basheclipse :

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

Я должен признать, что у меня нет опыта работы с basheclipse и даже не удалось установить его из-за несоответствия версии Eclipse.

С другой стороны, я использую специальные функции отладки bash и ksh93, особенно те trap ERRи trap DEBUG, но не отладчики на их основе kshdb и bashdb

jlliagre
источник
Я нахожу довольно ироничным, что ваш снимок экрана выполнен в стиле Windows.
Agi Hammerthief
@NigelNquande Если честно, я не пользователь basheclipse (или затмение в этом отношении). Я определенно использую функции отладки, предоставляемые ksh93 и bash, но без графического интерфейса. Этот скриншот взят с сайта basheclipse. Это может быть какая-то тема гнома или просто скриншот с 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 по-своему. Не надо, пожалуйста, поддаваться ненависти.
Det
1
@ Дет: Это был законный вопрос - если мы не можем все согласиться с общим конкретным определением фразы, то мы могли бы также не обсуждать это. Мне просто любопытно, что подразумевается под этой фразой.
Тревор Салливан
3
Я не согласен с тем, что IDE не используют сценарии оболочки. Возможно, вы захотите очистить свои скрипты оболочки (например, встроенные посторонние переменные, обнаружить неиспользуемые переменные - это то, что я пытаюсь сделать при очистке моих скриптов System V Init, которые становятся излишне длинными, особенно при дублировании из существующих примеров).
Шридхар Сарнобат
2
Я также добавил бы это, и IDE предоставляет intellisense или другие инструменты, так что мне не нужно постоянно гуглить или просматривать справочные страницы, чтобы запомнить некоторые вещи. Это также позволяет мне хранить все мои сценарии вместе в проекте, перешагивать строки, проверять входящие аргументы, проверять циклы и переключатели, разбивать канал для проверки и т. Д.
cjbarth
2

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

Можно написать сценарии bash, используя блокнот jupyter.

Записная книжка jupyter может быть установлена ​​через anaconda, а ядро ​​bash для записной книжки jupyter (или jupyterlab) может быть установлено с помощью следующих команд ( источник ):

pip install bash_kernel а также

python -m bash_kernel.install

После этого вы можете выбрать bash в новом экземпляре средства запуска Anaconda Navigator, как показано ниже.

Единственное, что (насколько я знаю) он не работает с командами, которые вы должны ввести в приглашение, например, readили с любым другим аргументом, который вы передаете после вызова скрипта. Но кроме этого, это работает довольно хорошо.

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

BCArg
источник
1

столкнулся с этой проблемой сам, имею в виду, что я искал IDE bash-скрипта, в populare IDE есть много плагинов, таких как eclipse и многие другие. но найдите много работы, связанной с IDE, только для создания небольших скриптов bash. с другой стороны, работа с редакторами приводит к множеству синтаксических ошибок и трате времени, не говоря уже о том, что это совсем не весело.

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

user3035398
источник
1

Rogalmic написал плагины для VSCode для bashdb и zshdb .

Они основаны на моих отладчиках для bash и zsh , поэтому они обрабатывают множество крайних случаев, которых не хватает, например, отладчика eclipse для bash.

скалистый
источник
0

Я хотел бы предложить выпуск PyCharm Community с плагином BashSupport . Это имеет отличные функциональные возможности IDE с intellij intellisense.

DexOnWeb
источник