Creare uno script bash è abbastanza semplice in tutti i sistemi operativi più diffusi, ma esistono strumenti online che possano sostituire validamente i principali editor bash locali? L'articolo di oggi si focalizzerà proprio su questa domanda, vogliamo infatti presentarvi 5 progetti online che possono efficacemente replicare le funzionalità del vostro bash editor preferito.
ShellCheck
Partiamo da ShellCheck, un efficiente strumento di analisi degli script. È scritto in Haskel ed è completamente open source, il suo codice è infatti disponibile su GitHub, ed è possibile reperire diversi pacchetti pronti per le varie distribuzione Linux. Gli obiettivi principali degli sviluppatori di ShellCheck sono:
- indicare e chiarire i tipici problemi di sintassi, per lo più dei principianti, che generano messaggi criptici da shell.
- Evidenziare i problemi semantici di livello intermedio che fanno sì che una shell si comporti in modo contro-intuitivo.
- Sottolineare casi singolari che possono causare il fallimento di uno script, altrimenti funzionante.
ShellCheck si rivela uno strumento di analisi approfondita degli script bash sia per utenti alle prime armi che per sviluppatori esperti. Il sito Web può anche sincronizzarsi con il codice presente in un repository Github e analizzare il nuovo sorgente in tempo reale.
Learn Shell
Passiamo adesso Learn Shell, si tratta di un progetto dedicato ai tutorial di programmazione interattivi. Con Learn Shell è possibile intraprendere un processo di apprendimento diviso in sezioni con varie tematiche.
Che tu sia un programmatore esperto o meno, questo sito è dedicato a tutti coloro che desiderano imparare a programmare con gli interpreti di shell Unix/Linux. Sul sito è disponibile anche una vasta serie di tutorial dedicati ai linguaggi di programmazione cosi da approfondire ulteriormente le proprie skill. L'editor permette inoltre di scrivere e visualizzare il risultato dell'esecuzione del proprio script online in pochi secondi, dunque non è necessario scaricare lo script in locale per le verifiche.
Paiza
È il turno di Paiza, una piattaforma online che fornisce ambienti di sviluppo per diversi linguaggi di programmazione, tra i quali: C, C++, Java, Ruby, Python, PHP e Perl. È dotato di un editor personalizzabile e dispone dell'integrazione completa con GitHub.
Il suo team l'ha dotato anche di varie feature a corredo come la scrittura collaborativa in tempo reale e la possibilità di pianificare attività in modo automatico. Anche con Paiza è possibile testare istantaneamente il proprio script bash e verificare la presenza di errori.
JDoodle
Andiamo adesso su JDoodle, questo progetto permette di salvare i progetti, cambiare il tema dell'interfaccia utente, collaborare con altri utenti e può essere integrato sul proprio sito Web.
È in grado di compilare ed eseguire programmi in Java, C/C++, PHP, Perl, Python, Ruby, HTML oltre ovviamente a poter testare script bash. I suoi sviluppatori ci tengono a precisare però che JDoodle non è un IDE completo, l'obiettivo del progetto è quello di fornire un modo rapido e semplice per eseguire poche righe di codice online. Eliminando quindi la necessità di aprire un IDE e creare un nuovo progetto da eseguire per piccoli programmi.
Rex Tester
Chiudiamo l'articolo con Rex Tester, un online coding tool con supporto a vari linguaggi di programmazione, incluso bash. Dispone di tutte le funzionalità base per editing e scrittura collaborativa e contempla la personalizzazione dell'ambiente di sviluppo.
Rextester sta per "regular expression tester" ed è stato sviluppato con l'intento di eseguire test sulle espressioni regolari. Rex Tester è stato progettato in modo che il codice venga eseguito per conto di utenti e gruppi all'interno di un wrapper Python che imposta vari limiti al processo.
Questo è possibile usando la chiamata di sistema setrlimit
, inoltre si avranno massimo 30 secondi per la compilazione, una massimo di 5 secondi per sfruttare la potenza di esecuzione della CPU (con memoria limitata a 1500 Mb). Senza contare che tutti i processi principali e i vari processi figli verranno eseguiti in un gruppo creato al momento che verrà terminato dopo 10 secondi dall'inizio (se ancora in esecuzione).