Existe-t-il des IDE de script shell bien connus et bien utilisés pour Un * x?


23

Existe-t-il des IDE ciblés sur les scripts shell, en particulier les scripts bash et zsh? Cela signifie avoir une mise en évidence de la syntaxe pour les scripts shell et, plus important encore, des environnements de débogage avec des fonctionnalités telles que les points d'arrêt, l'inspection et la modification des variables, etc., tout comme ceux disponibles pour les langages de programmation classiques comme Python, Java et C.

Par exemple, Microsft Windows Powershell possède des IDE comme Powershell Plus et PowerGui .

Google a mis au point une combinaison de ShellEd , un plugin Eclipse pour l'édition de scripts shell, et BashEclipse , un débogueur Bash qui fonctionne avec ShellEd; Je ne l'ai pas encore essayé.

Existe-t-il d'autres IDE de script shell pour Un * x similaires à ce combo? Quelqu'un a-t-il une certaine expérience avec eux?


10
Je n'ai pas déçu, mais celui qui l'a fait l'a fait parce que vous ne posez pas de question. La seule question dans votre message peut être répondue par un oui / non. Que demandez-vous réellement? Comment fonctionnent ces programmes? Ce qu'ils font? Qu'essayez-vous de faire exactement?
terdon

10
Un IDE bash? La fission nucléaire pour faire bouillir de l'eau pour le thé ...
Jasonwryan

5
En fait, avoir un débogueur bash est une très bonne idée - comme avec tout langage de programmation, votre code sera meilleur si vous parcourez lentement chaque ligne du débogueur, examinez les variables, réfléchissez à ce que fait le code, etc. Un débogueur est le meilleur moyen de le faire, même si votre programme ou script n'a pas de bogues. Vous pouvez obtenir bashdb dans la plupart des distributions, ce qui vous permettra de le faire en mode texte. En outre, le débogueur graphique DDD vieillissant peut être conçu pour fonctionner avec bashdb afin que vous ayez une expérience plus "visuelle".
Stabledog

1
Oui, certainement on peut le faire. Et beaucoup le font, et c'est ainsi qu'ils s'en tirent pendant des années. Si cela vous convient, je n'essaierais pas de vous convaincre du contraire. À mon avis, c'est une approche inférieure qui impose au cerveau des tâches de faible valeur (comme le suivi mental des valeurs des variables, etc.). L'idée d'une bonne interface utilisateur du débogueur libère ces cycles de réflexion sur le programme. D'après mon expérience, cela compte - vous avez plus d'attention à vous concentrer sur la réflexion sur ce que fait le programme si vous dépensez moins sur de telles choses.
Stabledog

1
Pour ceux d'entre nous qui ont des bouilloires ou des cuisinières électriques aux États-Unis ou en Europe, une bonne partie de notre production électrique de base est fournie par des centrales nucléaires, donc lorsque nous faisons bouillir de l'eau pour le thé, nous utilisons la fission nucléaire, au moins partiellement.
Andrew Janke

Réponses:


14

Je ne dirais pas qu'il est bien connu ou bien utilisé mais vous pourriez jeter un œil à basheclipse :

entrez la description de l'image ici

Je dois admettre que je n'ai aucune expérience avec basheclipse et que j'ai même échoué à l'installer en raison d'un décalage de version d'éclipse.

D'un autre côté, j'utilise des fonctionnalités de débogage spécifiques à bash et ksh93, en particulier les trap ERRet trap DEBUGmais pas les débogueurs basés sur eux kshdb et bashdb


Je trouve assez ironique que votre capture d'écran soit une fenêtre de style Windows.
Agi Hammerthief

@NigelNquande Pour être honnête, je ne suis pas un utilisateur basheclipse (ou éclipse d'ailleurs). J'utilise certainement les fonctionnalités de débogage fournies par ksh93 et ​​bash, mais pas d'interface graphique. Cette capture d'écran est tirée du site basheclipse. Il peut s'agir d'un thème gnome ou simplement d'une véritable capture d'écran de Windows 7 étant donné la ligne OS = "cygwin".
jlliagre

Eh bien, OMI, si vous allez faire quelque chose, faites-le avec des bottes, pas un demi- ed (mais ce n'est ni ici ni là pour personne d'autre). Pour moi, bashWindows semble à moitié séduit quand il fonctionne parfaitement bien sous GNU / Linux.
Agi Hammerthief

@NigelNquande Comme je l'ai écrit, ce n'est pas une capture d'écran de la mienne. Dans tous les cas, je n'utilise bash sur Windows que lorsque je n'ai pas le choix et cygwinest assez efficace pour masquer le système d'exploitation sous-jacent.
jlliagre

1
@ user7000 J'ai écrit et même échoué à l'installer en raison d'un décalage de version d'éclipse mais je ne me souviens pas de quelle version d'éclipse c'était. Il est cependant documenté pour fonctionner avec Eclipse 4.5.2: sourceforge.net/projects/basheclipse/files/?source=navbar
jlliagre

8

Un IDE spécialement conçu irait en quelque sorte à l'encontre de l'objectif des scripts shell, sans oublier qu'il est presque impossible de le faire, car la plupart de ce que fait le shell appelle des commandes externes - comment déboguez-vous cela? Le débogage avec des points de contrôle est contre-intuitif pour un shell - les scripts shell fonctionnent généralement fortement sur les fichiers et ont donc des effets secondaires destructeurs à chaque appel. Le script BY DESIGN fonctionne ligne par ligne, donc votre "environnement" est en fait le terminal lui-même - vous pouvez toujours faire écho aux variables, votre environnement est toujours là pour vous, il n'y a pas de "flux prescrit" que vous auriez à interrompre. Vous faites progressivement ce que vous voulez faire, ligne par ligne, testant à chaque fois si vous avez obtenu ce que vous vouliez, puis collez ces lignes dans un script pour les réutiliser.

Pour les langages de script pleinement qualifiés (Python, Perl, etc.), vous avez tout cela, mais bash / zsh / ksh / ... sont des "colles" interactives pour d'autres commandes et sont leurs propres débogueurs.

Cependant, la plupart des éditeurs de texte mettront en évidence le code pour vous, et emacs(à condition que vous trouviez les bons packages, je n'ai jamais pris la peine de le faire pour les scripts shell) fournissent une complétion de mots clés programmable. Je pense que je vipeux le faire aussi (ne lancez pas une guerre des flammes ici s'il vous plaît).


2
Comment définissez-vous un «langage de script complet»?
Trevor Sullivan

1
@TrevorSullivan à sa manière. S'il vous plaît, ne cédez pas à la haine.
Dét

1
@Det: C'était une question légitime - si nous ne pouvons pas tous nous mettre d'accord sur une définition commune et concrète de l'expression, alors nous pourrions tout aussi bien ne pas en discuter. Je suis simplement curieux de savoir ce que signifie cette phrase.
Trevor Sullivan

3
Je ne suis pas d'accord sur le fait que les IDE vont à l'encontre de l'objectif des scripts shell. Vous voudrez peut-être nettoyer vos scripts shell (par exemple, les variables externes en ligne, détecter les variables inutilisées - c'est ce que j'essaie de faire pour nettoyer mes scripts System V Init qui deviennent inutilement longs, surtout lorsqu'ils sont dupliqués à partir d'exemples existants).
Sridhar Sarnobat

2
J'ajouterais également cela et IDE fournit intellisense ou d'autres outils, donc je n'ai pas à continuer à googler ou à consulter les pages de manuel pour me souvenir de certaines choses. Cela me permet également de garder tous mes scripts ensemble dans un projet, de passer par-dessus les lignes, d'inspecter les arguments entrants, de tester les boucles et les commutateurs, de séparer un tuyau pour inspection, etc.
cjbarth

2

J'approuve également l'idée d'utiliser un IDE pour les scripts bash.

On peut écrire des scripts bash en utilisant le cahier jupyter.

Le cahier jupyter peut être installé via anaconda tandis qu'un noyau bash pour cahier jupyter (ou jupyterlab) peut être installé avec les commandes suivantes ( source ):

pip install bash_kernel et

python -m bash_kernel.install

Après cela, vous pouvez sélectionner bash sur une nouvelle instance de lanceur de navigateur anaconda, comme indiqué ci-dessous.

La seule chose est que (pour autant que je sache) cela ne fonctionne pas avec les commandes que vous devez entrer dans l'invite, telles que readou tout autre argument que vous passez après avoir appelé le script. Mais à part ça, ça marche plutôt bien.

entrez la description de l'image ici


1

rencontré ce problème moi-même, signifie que j'ai recherché le script bash IDE, il y a beaucoup de plugins sur populare IDE tout comme eclipse et bien d'autres. mais trouvez-y beaucoup de travail sur les IDE juste pour construire de petits scripts bash. en revanche, travailler avec des éditeurs entraîne de nombreuses erreurs de syntaxe et une perte de temps, sans oublier que ce n'est pas amusant du tout.

j'ai donc trouvé un outil de script bash en ligne pour créer des scripts, il s'appelle http://bashops.net , il est en ligne, peut immédiatement commencer à travailler sur la construction de script bash, sans être occupé dans aucune installation.


1

Rogalmic a écrit des plugins VSCode pour bashdb et zshdb .

Ils sont basés sur mes débogueurs pour bash et zsh , ils gèrent donc beaucoup de cas marginaux qui manquent, par exemple, le débogueur d'éclipse pour bash.


0

Je voudrais suggérer l'édition PyCharm Community avec le plugin BashSupport . Cela a d'excellentes fonctionnalités IDE avec intellij intellisense.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.