¿Hay algún IDE de script de shell conocido y bien utilizado para Un * x?

23

¿Hay algún IDE dirigido a scripts de shell, específicamente scripts de bash y zsh? Esto significa tener resaltado de sintaxis para scripts de shell y, lo que es más importante, entornos de depuración con características como puntos de interrupción, inspección y modificación de variables, etc., al igual que los disponibles para lenguajes de programación regulares como Python, Java y C.

Por ejemplo, Microsft Windows Powershell tiene IDEs como Powershell Plus y PowerGui .

Google introdujo una combinación de ShellEd , un complemento de Eclipse para editar scripts de shell, y BashEclipse , un depurador de Bash que funciona con ShellEd; No lo he probado todavía.

¿Hay algún otro IDE de script de shell para Un * x similar a este combo? ¿Alguien tiene alguna experiencia con ellos?

vfclists
fuente
10
No voté en contra, pero quien lo hizo lo hizo porque no está haciendo una pregunta. La única pregunta en tu publicación puede responderse con un Sí / No. ¿Qué estás preguntando realmente? ¿Cómo funcionan estos programas? ¿Lo que hacen? ¿Qué estás tratando de hacer exactamente?
terdon
10
¿Un IDE bash?
Fisión
55
En realidad, tener un depurador bash es una muy buena idea, al igual que con cualquier lenguaje de programación, su código será mejor si recorre lentamente cada línea del depurador, examina las variables, piensa en lo que está haciendo el código, etc. Un depurador es la mejor manera de hacerlo, incluso si su programa o script no tiene errores. Puede obtener bashdb en la mayoría de las distribuciones, lo que le permitirá hacerlo en modo texto. Además, el depurador gráfico DDD antiguo puede funcionar con bashdb para que tenga una experiencia más "visual".
Stabledog
1
Sí, ciertamente uno puede hacer eso. Y muchos lo hacen, y así es como se las arreglan durante años. Si eso te conviene, no trataría de convencerte de lo contrario. En mi opinión, es un enfoque inferior que grava al cerebro con tareas de poco valor (como el seguimiento mental de los valores de las variables, etc.). La idea de una buena interfaz de usuario de depurador está liberando esos ciclos para pensar en el programa. En mi experiencia, esto es importante: tienes más atención libre para concentrarte en pensar en lo que está haciendo el programa si gastas menos en esas cosas.
Stabledog
1
Para aquellos de nosotros con calderas o cocinas eléctricas en los EE. UU. O Europa, una buena parte de nuestra generación de carga eléctrica básica es suministrada por plantas de energía nuclear, por lo que cuando hiervemos agua para el té, estamos usando fisión nuclear, al menos parcialmente.
Andrew Janke

Respuestas:

14

No diría que es bien conocido o bien utilizado, pero puede echar un vistazo a basheclipse :

ingrese la descripción de la imagen aquí

Debo admitir que no tengo experiencia con basheclipse e incluso no pude instalarlo debido a un desajuste de la versión eclipse.

Por otro lado, estoy usando las funciones de depuración específicas de bash y ksh93, especialmente las trap ERRy trap DEBUG, pero no las depuradoras basadas en ellas kshdb y bashdb

jlliagre
fuente
Me parece bastante irónico que su captura de pantalla sea de una ventana de estilo Windows.
Agi Hammerthief
@NigelNquande Para ser honesto, no soy un usuario basheclipse (o eclipse para el caso). Definitivamente uso las funciones de depuración proporcionadas por ksh93 y bash, pero no GUI. Esta captura de pantalla está tomada del sitio basheclipse. Puede ser algún tema de gnomo o simplemente una captura de pantalla real de Windows 7 dada la línea OS = "cygwin".
jlliagre
Bueno, en mi opinión, si vas a hacer algo, hazlo con las botas puestas, no a medias (pero eso no está aquí ni allá para nadie más). Para mí, bashen Windows parece medio sed cuando funciona perfectamente bien en GNU / Linux.
Agi Hammerthief
@NigelNquande Como escribí, esta no es una captura de pantalla mía. En cualquier caso, solo uso bash en Windows cuando no tengo otra opción y cygwines bastante eficiente para ocultar el sistema operativo subyacente.
jlliagre
1
@ user7000 escribí e incluso no pude instalarlo debido a una versión de eclipse no coincidente, pero no recuerdo qué versión de eclipse era. Sin embargo, se documenta que funciona con Eclipse 4.5.2: sourceforge.net/projects/basheclipse/files/?source=navbar
jlliagre
8

Un IDE especialmente diseñado podría derrotar el propósito de los scripts de shell, sin mencionar que es casi imposible de hacer, porque la mayor parte de lo que hace Shell es llamar a comandos externos: ¿cómo se depura eso? La depuración con puntos de control es contraintuitiva para un shell: los scripts de shell generalmente operan en gran medida en los archivos y, por lo tanto, tienen efectos secundarios destructivos en cada llamada. La creación de secuencias de comandos POR DISEÑO funciona línea por línea, por lo que su "entorno" es en realidad el terminal en sí mismo: siempre puede hacer eco de las variables, su entorno siempre está ahí para usted, no hay un "flujo prescrito" que deba interrumpir. Progresivamente haces lo que quieres hacer, línea por línea, probando cada vez si obtuviste lo que querías y luego pegas estas líneas en un script para usar nuevamente.

Para lenguajes de secuencias de comandos totalmente calificados (Python, Perl, etc.) tiene todo esto, pero bash / zsh / ksh / ... son "pegamentos" interactivos para otros comandos y son sus propios depuradores.

Sin embargo, la mayoría de los editores de texto resaltarán el código por usted y emacs(siempre que encuentre los paquetes correctos, nunca me molesté en hacerlo para los scripts de shell) proporcionarán la finalización de palabras clave programables. Creo que vipuede hacer eso también (no comience una guerra de llamas aquí, por favor).

Orión
fuente
2
¿Cómo define un "lenguaje de script totalmente calificado"?
Trevor Sullivan
1
@TrevorSullivan a su manera. Por favor, no cedas ante el odio.
Det
1
@Det: Era una pregunta legítima: si no podemos estar todos de acuerdo en una definición común y concreta de la frase, entonces podríamos no tener una discusión al respecto. Tengo curiosidad por saber qué significa esa frase.
Trevor Sullivan el
3
No estoy de acuerdo con que los IDE anulen el propósito de los scripts de shell. Es posible que desee limpiar sus scripts de shell (por ejemplo, variables extrañas en línea, detectar variables no utilizadas, que es lo que estoy tratando de hacer para limpiar mis scripts de System V Init que se están volviendo innecesariamente largos, especialmente cuando se duplican a partir de ejemplos existentes).
Sridhar Sarnobat
2
También agregaría eso e IDE proporciona intellisense u otras herramientas para no tener que buscar en Google o mirar páginas de manual para recordar algunas cosas. También me permite mantener todos mis guiones juntos en un proyecto, paso a través de líneas, inspeccionar los argumentos de entrada, bucles de prueba y los interruptores, romperse una tubería para la inspección, etc.
cjbarth
2

También apoyo la idea de usar un IDE para los scripts de bash.

Uno puede escribir scripts de bash usando el cuaderno jupyter.

El jupyter notebook se puede instalar a través de anaconda, mientras que un kernel bash para jupyter notebook (o jupyterlab) se puede instalar con los siguientes comandos ( fuente ):

pip install bash_kernel y

python -m bash_kernel.install

Después de eso, puede seleccionar bash en una nueva instancia de lanzador de anaconda navigator, como se muestra a continuación.

Lo único es que (hasta donde yo sé) no funciona con comandos que tiene que ingresar en el indicador, como reado cualquier otro argumento que pase después de llamar al script. Pero aparte de eso, funciona bastante bien.

ingrese la descripción de la imagen aquí

BCArg
fuente
1

Encontré este problema por mí mismo, lo que significa que busqué IDE de script bash, hay muchos complementos en IDE popular al igual que eclipse y muchos otros. pero encuentra mucho trabajo lidiando con IDE solo para construir pequeños scripts de bash. Por otro lado, trabajar con editores causa muchos errores de sintaxis y pérdida de tiempo, sin mencionar que no es divertido en absoluto.

así que encontré una herramienta de script bash en línea para crear scripts, se llama http://bashops.net , está en línea, inmediatamente puedo comenzar a trabajar en la creación de script bash, sin ocuparme de ninguna instalación.

usuario3035398
fuente
1

Rogalmic escribió complementos VSCode para bashdb y zshdb .

Se basan en mis depuradores para bash y zsh , por lo que manejan muchos de los casos extremos que faltan, por ejemplo, el depurador de eclipse para bash.

rocoso
fuente
0

Me gustaría sugerir la edición PyCharm Community con el complemento BashSupport . Esto tiene excelentes funcionalidades IDE con intellij intellisense.

DexOnWeb
fuente