Existem IDEs de script de shell conhecidos e bem usados ​​para Un * x?

23

Existem IDEs direcionados para scripts de shell, especificamente scripts bash e zsh? Isso significa ter destaque de sintaxe para scripts de shell e ambientes de depuração mais importantes com recursos como pontos de interrupção, inspeção e modificação de variáveis ​​etc., assim como aqueles disponíveis para linguagens de programação regulares como Python, Java e C.

Por exemplo, o Microsft Windows Powershell possui IDEs como o Powershell Plus e o PowerGui .

O Google pesquisou uma combinação do ShellEd , um plug-in do Eclipse para editar scripts de shell e o BashEclipse , um depurador do Bash que funciona com o ShellEd; Ainda não tentei.

Existem outros IDEs de script de shell para Un * x semelhantes a esta combinação? Alguém tem alguma experiência com eles?

vfclists
fonte
10
Não fiz voto negativo, mas quem o fez, fez isso porque você não está fazendo uma pergunta. A única pergunta em sua postagem pode ser respondida com Sim / Não. O que você está realmente perguntando? Como esses programas funcionam? O que eles fazem? O que você está tentando fazer exatamente?
terdon
10
Um IDE do bash? Fissão nuclear para ferver água para o chá ...
jasonwryan
5
Na verdade, ter um depurador bash é uma ótima idéia - assim como em qualquer linguagem de programação, seu código será melhor se você percorrer cada linha do depurador lentamente, examinar as variáveis, pensar no que o código está fazendo etc. Um depurador é a melhor maneira de fazer isso, mesmo que seu programa ou script não tenha erros. Você pode obter o bashdb na maioria das distribuições, o que permitirá fazer isso no modo de texto. Além disso, o depurador gráfico DDD antigo pode ser feito para funcionar com o bashdb, para que você tenha uma experiência mais "visual".
precisa saber é
1
Sim, certamente alguém pode fazer isso. E muitos sim, e é assim que eles se dão por anos. Se isso lhe convier, não tentarei convencê-lo do contrário. Na minha opinião, é uma abordagem inferior que sobrecarrega o cérebro com tarefas de baixo valor (como acompanhar mentalmente os valores das variáveis, etc.). A idéia de uma boa interface do depurador está liberando esses ciclos para pensar no programa. Na minha experiência, isso importa - você tem mais atenção livre para se concentrar em pensar no que o programa está fazendo se você estiver gastando menos com isso.
Stabledog
1
Para aqueles de nós com chaleiras ou fogões elétricos nos EUA ou na Europa, boa parte de nossa geração elétrica de carga de base é fornecida por usinas nucleares; portanto, quando fervemos água para o chá, estamos usando fissão nuclear, pelo menos parcialmente.
Andrew Janke

Respostas:

14

Eu não diria que é bem conhecido ou bem usado, mas você pode dar uma olhada na basheclipse :

insira a descrição da imagem aqui

Devo admitir que não tenho experiência com o basheclipse e até falhei em instalá-lo devido a uma incompatibilidade de versão do eclipse.

Por outro lado, estou usando os recursos de depuração específicos do bash e do ksh93, especialmente os trap ERRe trap DEBUG, mas não os depuradores baseados neles, kshdb e bashdb

jlliagre
fonte
Acho irônico que sua captura de tela seja do tipo janela do Windows.
Agi Hammerthief
@NigelNquande Para ser sincero, não sou usuário de basheclipse (ou eclipse). Definitivamente, uso os recursos de depuração fornecidos pelo ksh93 e pelo bash, mas nenhuma GUI. Esta captura de tela é obtida no site da basheclipse. Pode ser algum tema de gnomo ou apenas uma captura de tela real do Windows 7, dada a linha OS = "cygwin".
Jlliagre 10/03
Bem, na IMO, se você quiser fazer alguma coisa, faça-o com botas, sem metade do tempo (mas isso não está aqui nem ali para mais ninguém). Para mim, bashno Windows parece meia hora quando funciona perfeitamente bem no GNU / Linux.
Agi Hammerthief
@NigelNquande Como escrevi, esta não é uma captura de tela minha. De qualquer forma, só uso o bash no Windows quando não tenho escolha e cygwiné bastante eficiente para ocultar o sistema operacional subjacente.
Jlliagre 10/03
1
@ user7000 Eu escrevi e até falhei em instalá-lo devido a uma incompatibilidade de versão do eclipse, mas não me lembro qual era a versão do eclipse. Está documentado para funcionar com o Eclipse 4.5.2: sourceforge.net/projects/basheclipse/files/?source=navbar
jlliagre
8

Um IDE criado com o objetivo derrotaria o objetivo do script de shell, sem mencionar que é quase impossível fazer isso, porque a maior parte do que o shell faz chamando comandos externos - como você depura isso? Depurar com pontos de verificação é contra-intuitivo para um shell - os scripts de shell geralmente operam intensamente em arquivos e, portanto, têm efeitos colaterais destrutivos em todas as chamadas. O script BY DESIGN funciona linha por linha, portanto, seu "ambiente" é realmente o próprio terminal - você sempre pode fazer eco de variáveis, seu ambiente está sempre à sua disposição, não há "fluxo prescrito" que você precisaria interromper. Você faz progressivamente o que deseja, linha por linha, testando cada vez se conseguiu o que queria e, em seguida, cola essas linhas em um script para usar novamente.

Para linguagens de script totalmente qualificadas (Python, Perl etc), você tem tudo isso, mas o bash / zsh / ksh / ... é uma "cola" interativa para outros comandos e é seu próprio depurador.

No entanto, a maioria dos editores de texto destacará o código para você e emacs(desde que você encontre os pacotes certos, nunca me preocupei em fazer isso para scripts de shell) fornecerá a conclusão de palavras-chave programáveis. Eu acredito que vipode fazer isso também (não inicie uma guerra de fogo aqui, por favor).

orion
fonte
2
Como você define uma "linguagem de script totalmente qualificada?"
Trevor Sullivan
1
@TrevorSullivan à sua maneira. Por favor, não ceda ao ódio.
Det
1
@Det: Era uma pergunta legítima - se todos nós não podemos concordar com uma definição comum e concreta da frase, então é melhor que não tenhamos uma discussão sobre isso. Só estou curioso para saber o que significa essa frase.
Trevor Sullivan
3
Não concordo que os IDEs anulem o propósito do script de shell. Você pode limpar seus scripts de shell (por exemplo, variáveis ​​estranhas inline, detectar variáveis ​​não utilizadas - que é o que estou tentando fazer na limpeza de meus scripts System V Init que estão ficando desnecessariamente longos, especialmente quando duplicados dos exemplos existentes).
Sridhar Sarnobat
2
Eu também acrescentaria isso e o IDE fornece intellisense ou outras ferramentas, para que eu não precise continuar pesquisando ou olhando as páginas de manual para lembrar de algumas coisas. Ele também me permite manter todos os meus scripts juntos em um projeto, passo através de linhas, inspecionar os argumentos de entrada, circuitos de teste e interruptores, quebrar um tubo para a inspeção, etc.
cjbarth
2

Também endosso a ideia de usar um IDE para scripts bash.

Pode-se escrever scripts bash usando o notebook jupyter.

O notebook jupyter pode ser instalado via anaconda, enquanto um kernel do bash para o notebook jupyter (ou jupyterlab) pode ser instalado com os seguintes comandos ( fonte ):

pip install bash_kernel e

python -m bash_kernel.install

Depois disso, você pode selecionar bash em uma nova instância do iniciador do anaconda navigator, como mostrado abaixo.

A única coisa é que (até onde eu sei) não funciona com comandos que você precisa inserir no prompt, como readqualquer outro argumento que você passa após chamar o script. Mas, fora isso, funciona muito bem.

insira a descrição da imagem aqui

BCArg
fonte
1

encontrei esse problema, significa que eu procurei pelo IDE do bash script, existem muitos plugins no IDE popular, como o eclipse e muitos outros. mas encontre muito trabalho lidando com os IDE apenas para criar pequenos scripts bash. por outro lado, trabalhar com editores causa muitos erros de sintaxe e perda de tempo, sem mencionar que não é nada divertido.

então, encontrei uma ferramenta de script bash online para criar scripts, chamada http://bashops.net , online, imediatamente pode começar a trabalhar na criação de script bash, sem se ocupar em nenhuma instalação.

user3035398
fonte
1

Rogalmic escreveu plugins VSCode para bashdb e zshdb .

Eles são baseados nos meus depuradores para o bash e o zsh , portanto, eles lidam com muitos dos casos extremos que faltam, como o depurador do eclipse para o bash.

rochoso
fonte
0

Gostaria de sugerir a edição da comunidade PyCharm com o plugin BashSupport . Isso tem excelentes funcionalidades IDE com intellij intellisense.

DexOnWeb
fonte