Esistono IDE di script di shell ben noti e usati per Un * x?


23

Esistono IDE destinati allo scripting della shell, in particolare script bash e zsh? Ciò significa avere l'evidenziazione della sintassi per gli script di shell e, soprattutto, per il debug di ambienti con funzionalità come punti di interruzione, ispezione e modifica delle variabili, ecc., Proprio come quelli disponibili per i linguaggi di programmazione regolari come Python, Java e C.

Ad esempio, Microsft Windows Powershell ha IDE come Powershell Plus e PowerGui .

Googling ha creato una combinazione di ShellEd , un plug-in Eclipse per la modifica di script di shell e BashEclipse , un debugger di Bash che funziona con ShellEd; Non l'ho ancora provato.

Esistono altri IDE di script di shell per Un * x simili a questa combinazione? Qualcuno ha qualche esperienza con loro?


10
Non ho votato a fondo, ma chiunque lo ha fatto, perché non stai facendo una domanda. L'unica domanda nel tuo post può essere risolta con un Sì / No. Cosa stai chiedendo davvero? Come funzionano questi programmi? Cosa fanno? Cosa stai cercando di fare esattamente?
terdon

10
Un IDE bash? Fissione nucleare per far bollire l'acqua per il tè ...
Jasonwryan

5
In realtà, avere un debugger bash è un'ottima idea - proprio come con qualsiasi linguaggio di programmazione, il tuo codice sarà migliore se passi lentamente attraverso ogni riga del debugger, esamini le variabili, pensi a cosa sta facendo il codice, ecc. Un debugger è il modo migliore per farlo, anche se il tuo programma o script non ha bug. Puoi ottenere bashdb nella maggior parte delle distribuzioni, il che ti permetterà di farlo in modalità testo. Inoltre, il vecchio debugger grafico DDD può essere fatto funzionare con bashdb in modo da avere un'esperienza più "visiva".
Stabledog

1
Sì, certamente uno può farlo. E molti lo fanno, ed è così che vanno avanti per anni. Se ti va bene, non proverei a convincerti altrimenti. A mio avviso, è un approccio inferiore che tassa il cervello con compiti di basso valore (come tenere mentalmente traccia dei valori delle variabili, ecc.). L'idea di una buona interfaccia utente per il debugger sta liberando quei cicli per pensare al programma. Nella mia esperienza, questo è importante: hai più attenzione a concentrarti sul pensare a cosa sta facendo il programma se stai spendendo meno in tali cose.
Stabledog

1
Per quelli di noi con bollitori elettrici o gamme negli Stati Uniti o in Europa, una buona parte della nostra generazione elettrica di carico di base è fornita da centrali nucleari, quindi quando facciamo bollire l'acqua per il tè, stiamo usando la fissione nucleare, almeno in parte.
Andrew Janke,

Risposte:


14

Non direi che sia ben noto o ben usato ma potresti dare un'occhiata a basheclipse :

inserisci qui la descrizione dell'immagine

Devo ammettere che non ho esperienza con basheclipse e che non sono nemmeno riuscito a installarlo a causa di una mancata corrispondenza della versione di Eclipse.

D'altra parte, sto usando le funzionalità di debug specifiche di bash e ksh93, in particolare quelle trap ERRe trap DEBUGma non i debugger basati su di esse kshdb e bashdb


Trovo piuttosto ironico che la tua schermata sia di una finestra in stile Windows.
Agi Hammerthief

@NigelNquande Ad essere sincero, non sono un utente basheclipse (o eclissi per quella materia). Sicuramente utilizzo le funzionalità di debug fornite da ksh93 e bash, ma nessuna interfaccia grafica. Questa schermata è tratta dal sito di basheclipse. Potrebbe essere un tema gnomo o solo uno screenshot di Windows 7 reale dato la linea OS = "cygwin".
jlliagre,

Bene, IMO, se hai intenzione di fare qualcosa, fallo con gli stivali, non a mezzo giro (ma non è né qui né lì per nessun altro). Per me, bashsu Windows sembra mezzo sed quando funziona perfettamente in GNU / Linux.
Agi Hammerthief

@NigelNquande Come ho scritto, questo non è uno dei miei screenshot. In ogni caso, utilizzo bash su Windows solo quando non ho scelta ed cygwinè abbastanza efficiente nascondere il sistema operativo sottostante.
jlliagre,

1
@ user7000 Ho scritto e non sono riuscito a installarlo a causa di una mancata corrispondenza della versione di Eclipse ma non ricordo quale versione di Eclipse fosse. È documentato per funzionare con Eclipse 4.5.2 anche se: sourceforge.net/projects/basheclipse/files/?source=navbar
jlliagre

8

Un IDE appositamente costruito potrebbe in qualche modo vanificare lo scopo dello scripting della shell, per non parlare del fatto che è quasi impossibile farlo, perché la maggior parte di ciò che fa la shell è chiamare comandi esterni - come si fa a eseguire il debug? Il debug con checkpoint è controintuitivo per una shell - gli script di shell di solito operano pesantemente sui file e hanno quindi effetti collaterali distruttivi su ogni chiamata. Gli script BY DESIGN funzionano riga per riga, quindi il tuo "ambiente" è in realtà il terminale stesso - puoi sempre fare eco alle variabili, il tuo ambiente è sempre lì per te, non esiste un "flusso prescritto" che dovresti interrompere. Fai progressivamente qualsiasi cosa tu voglia fare, riga per riga, testando ogni volta se hai quello che volevi e poi incolla queste righe in uno script per riutilizzarle.

Per linguaggi di scripting pienamente qualificati (Python, Perl ecc.) Avete tutto questo, ma bash / zsh / ksh / ... sono "colla" interattiva per altri comandi e sono i loro debugger.

Tuttavia, la maggior parte degli editor di testo evidenzierà il codice per te e emacs(a condizione che tu trovi i pacchetti giusti, non mi sono mai preoccupato di farlo per gli script di shell) fornirà il completamento programmabile delle parole chiave. Credo che vipossa farlo anche questo (non avviare una fiamma qui per favore).


2
Come si definisce un "linguaggio di scripting completo?"
Trevor Sullivan,

1
@TrevorSullivan a modo suo. Per favore, non cedere all'odio.
Det

1
@Det: era una domanda legittima - se non possiamo tutti concordare su una definizione comune e concreta della frase, allora potremmo anche non avere una discussione al riguardo. Sono solo curioso di sapere cosa si intende per frase.
Trevor Sullivan,

3
Non sono d'accordo che gli IDE sconfiggano lo scopo degli script di shell. Potresti voler ripulire i tuoi script di shell (ad esempio variabili estranee incorporate, rilevare variabili non utilizzate - che è quello che sto cercando di fare per ripulire i miei script System V Init che stanno diventando inutilmente lunghi soprattutto se duplicati da esempi esistenti).
Sridhar Sarnobat,

2
Vorrei anche aggiungere che IDE fornisce intellisense o altri strumenti, quindi non devo continuare a cercare su google o cercare pagine man per ricordare alcune cose. Mi permette anche di mantenere tutti i miei script insieme in un progetto, passo su linee, ispezionare argomenti in arrivo, i cicli di test e gli interruttori, spezzare un tubo per l'ispezione, ecc
cjbarth

2

Approvo anche l'idea di utilizzare un IDE per gli script bash.

Si possono scrivere script bash usando il quaderno jupyter.

Il notebook jupyter può essere installato tramite anaconda mentre un kernel bash per notebook jupyter (o jupyterlab) può essere installato con i seguenti comandi ( sorgente ):

pip install bash_kernel e

python -m bash_kernel.install

Successivamente, puoi selezionare bash su una nuova istanza di avvio di anaconda navigator, come mostrato di seguito.

L'unica cosa è che (per quanto ne so) non funziona con i comandi che devi inserire nel prompt, come reado qualsiasi altro argomento che passi dopo aver chiamato lo script. Ma a parte questo, funziona abbastanza bene.

inserisci qui la descrizione dell'immagine


1

ho riscontrato questo problema da solo, significa che ho cercato l'IDE di script bash, ci sono molti plugin su IDE populare proprio come eclipse e molti altri. ma trova molto lavoro a che fare con gli IDE solo per creare piccoli script bash. d'altra parte, lavorare con gli editor causa molti errori di sintassi e perdita di tempo, per non parlare del fatto che non è affatto divertente.

così ho trovato uno strumento di script bash online per la creazione di script, si chiama http://bashops.net , è online, immediatamente può iniziare a lavorare sulla creazione di script bash, senza occuparsi di alcuna installazione.


1

Rogalmic ha scritto plugin VSCode per bashdb e zshdb .

Si basano sui miei debugger per bash e zsh , quindi gestiscono molti dei casi limite che mancano nel dire il debugger eclipse per bash.


0

Vorrei suggerire l'edizione PyCharm Community con il plugin BashSupport . Questo ha eccellenti funzionalità IDE con intellij intellisense.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.