Che cos'è il formato di file SH?
.sh è una comune estensione di file shell Unix, utilizzata da bash (Bourne-again shell) e altre shell compatibili con POSIX. I file .sh memorizzano script shell - sequenze di comandi e istruzioni scritti in linguaggio shell, salvati come testo semplice.
I file .sh vengono creati in qualsiasi editor di testo e sono utilizzati principalmente per script eseguiti da una riga di comando shell Unix. Un file .sh inizia tipicamente con una riga shebang - come #!/bin/sh o #!/bin/bash - che indica al sistema operativo quale interprete invocare. Per eseguire uno script direttamente, il file deve essere reso eseguibile con chmod +x nomefile.sh.
Bash è un linguaggio di comandi interpretato e una shell Unix libera distribuita sotto licenza GNU, utilizzata per impostazione predefinita su molti sistemi Linux e macOS. La maggior parte dei sistemi della famiglia Unix supporta questa shell. Bash ha sostituito l'originale Bourne shell, da cui il nome - Bourne-again.
I file .sh possono essere utilizzati anche per salvare script destinati ad altre shell, come Korn Shell, Z Shell, C Shell o Bourne Shell. Su Windows, l'automazione equivalente è gestita da file batch o script PowerShell. Poiché .sh segnala convenzionalmente la compatibilità con la shell POSIX, gli script destinati a una shell specifica dichiarano esplicitamente il proprio interprete nella riga shebang.
Sicurezza e incolumità
RISCHIO: MEDIUMUn file .sh è l'equivalente Unix dell'esecuzione di comandi arbitrari: quando eseguito può fare tutto ciò che l'utente può fare - eliminare file, installare software, esfiltrare dati o eseguire malware. Il noto pattern «curl URL | bash» esegue uno script remoto senza possibilità di ispezionarlo. Regole di sicurezza: (1) MAI eseguire un .sh da una fonte non attendibile senza averlo prima letto - è testo semplice, quindi aprilo in un editor e controlla cosa fa; (2) diffida di righe singole offuscate, blocchi base64 o script che reindirizzano a sudo; (3) gli script di installazione autoestraenti (shar/Makeself, inclusi i .run) nascondono un payload dopo lo script - eseguili solo se provengono dal fornitore ufficiale. Un .sh non è automaticamente pericoloso, ma è codice, quindi fidati della fonte.
Dettagli del formato
in sintesiProgrammi che aprono file SH
Dettagli tecnici
specifiche approfondite| Tipo di file | Script shell eseguibile in testo semplice |
| Tipo MIME | application/x-sh |
| Convenzione Shebang | La prima riga dichiara l'interprete: #!/bin/sh, #!/bin/bash, o #!/usr/bin/env bash |
| Codifica caratteri | UTF-8 o ASCII; la codifica deve essere supportata dalla shell di destinazione |
| Fine riga | Richiesto LF (stile Unix); i finali di riga CRLF causano errori di sintassi sulla maggior parte delle shell |
| Metodo di esecuzione | Invocare con bash script.sh, o impostare il bit di esecuzione (chmod +x) ed eseguire direttamente come ./script.sh |
| Sintassi dei commenti | Carattere #; tutto ciò che va da # alla fine della riga viene ignorato dall'interprete |
| Assegnazione variabili | Nessuna dichiarazione di tipo richiesta; VAR=valore (senza spazi intorno a =); accessibile come $VAR o ${VAR} |
| Convenzione codici di uscita | 0 = successo; qualsiasi valore diverso da zero = errore; restituito tramite exit N o ispezionato in $? |
| Portabilità POSIX | Gli script scritti secondo lo standard POSIX sh funzionano su bash, dash, ksh e qualsiasi shell conforme |
| Flag gestione errori | set -e esce al primo errore; set -u tratta le variabili non impostate come errori; set -o pipefail cattura i fallimenti nelle pipe |
| Supporto piattaforma | Nativo su Linux e macOS; disponibile su Windows tramite WSL, Git Bash o Cygwin |
| Interprete primario | Bash (GNU Bourne-Again Shell); anche dash, ksh o zsh a seconda della riga shebang |
| Debug dello script | set -x abilita la modalità traccia, stampando ogni comando prima dell'esecuzione; bash -n controlla la sintassi senza eseguire |
| Rilasciato | 1979 (Bourne shell, Unix V7); POSIX shell standardized; Bash 1989 |
| Standard aperto | Sì · royalty-free |
| Specifica | pubs.opengroup.org |
Conversioni SH
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file SH.