Dati
Che cos'è uno script shell?
Uno script shell è un file di testo con comandi interpretati da una shell, ad esempio sh o Bash. L'estensione .sh è comune, ma non identifica la sintassi della shell. Occorre verificare l'ambiente di destinazione, inclusi shebang, modalità di esecuzione, permessi e terminatori di riga.
Quando scegliere questo formato
- Attività con una shell di destinazione nota, come POSIX sh o Bash
- Automatizzare comandi verificati e ripetibili
Quando evitare questo formato
- Distribuire tra shell diverse senza verificarne la compatibilità
- Eseguire script senza controllarne provenienza e contenuto
Usi comuni
- Automatizzare comandi su sistemi Unix-like
- Ripetere attività di sviluppo e gestione
Caratteristiche
- Può contenere comandi, variabili, condizioni e cicli
- Lo shebang può indicare l'interprete da usare per l'esecuzione
- Le funzioni specifiche di Bash differiscono dalla sintassi POSIX sh
Vantaggi e svantaggi
Vantaggi
- Automatizza attività combinando comandi shell esistenti
- È facile da esaminare come testo e tenere sotto controllo versione
Svantaggi
- Sintassi e comandi disponibili variano in base a shell, sistema operativo e implementazione
- Un'esecuzione errata può modificare o eliminare file e causare altri effetti indesiderati
Aprire e convertire
Come aprire
Esamina il contenuto con un editor di testo. Prima di eseguirlo, controlla shebang, shell di destinazione, percorsi usati, permessi e terminatori di riga. Non eseguire script di provenienza non attendibile.
Come convertire
Quando adatti uno script Bash a POSIX sh o a un'altra shell, verifica sintassi specifica di Bash e comandi interni ed esterni, poi controlla la sintassi e prova lo script nell'ambiente di destinazione.
Avvertenze
- L'estensione .sh da sola non indica se lo script è destinato a POSIX sh, Bash o un'altra shell.
- Gli script contengono comandi eseguibili. Verificane provenienza e contenuto e, se opportuno, testali in un ambiente isolato.
- Un file .sh potrebbe non essere eseguibile direttamente nel Prompt dei comandi di Windows. Controlla quale shell o ambiente di compatibilità è richiesto.
Domande frequenti
Qualsiasi shell può eseguire un file .sh?
No. Sintassi e comandi variano da una shell all'altra. Controlla lo shebang e l'ambiente di destinazione.