Wat is het SH-bestandsformaat?
.sh is een veelgebruikte Unix shell-bestandsextensie, gebruikt door bash (Bourne-again shell) en andere POSIX-compatibele shells. .sh-bestanden slaan shell-scripts op - reeksen commando's en instructies geschreven in shell-taal, opgeslagen als platte tekst.
.sh-bestanden worden gemaakt in elke tekstverwerker en worden voornamelijk gebruikt voor scripts die worden uitgevoerd via een Unix shell-opdrachtregel. Een .sh-bestand begint meestal met een shebang-regel - zoals #!/bin/sh of #!/bin/bash - die het besturingssysteem vertelt welke interpreter moet worden aangeroepen. Om een script direct uit te voeren, moet het bestand uitvoerbaar worden gemaakt met chmod +x bestandsnaam.sh.
Bash is een geïnterpreteerde commandotaal en een gratis Unix-shell gedistribueerd onder de GNU-licentie, die standaard wordt gebruikt op veel Linux- en macOS-systemen. De meeste systemen uit de Unix-familie ondersteunen deze shell. Bash verving de originele Bourne-shell, vandaar de naam - Bourne-again.
.sh-bestanden kunnen ook worden gebruikt voor het opslaan van scripts die bedoeld zijn voor andere shells, zoals Korn Shell, Z Shell, C Shell of Bourne Shell. Op Windows wordt gelijkwaardige automatisering afgehandeld door batchbestanden of PowerShell-scripts. Omdat .sh conventioneel POSIX-shellcompatibiliteit signaleert, declareren scripts die gericht zijn op een specifieke shell hun interpreter expliciet in de shebang-regel.
Beveiliging & veiligheid
RISICO: MEDIUMEen .sh-bestand is het Unix-equivalent van het uitvoeren van willekeurige commando's: bij uitvoering kan het alles doen wat de gebruiker kan - bestanden verwijderen, software installeren, gegevens exfiltreren of malware uitvoeren. Het beruchte „curl URL | bash”-patroon voert een extern script uit zonder de kans het te inspecteren. Veiligheidsregels: (1) voer NOOIT een .sh uit van een onbetrouwbare bron zonder deze eerst te lezen - het is platte tekst, dus open het in een editor en controleer wat het doet; (2) wees op uw hoede voor onduidelijke eenregelige commando's, base64-blobs of scripts die naar sudo leiden; (3) zelfuitpakkende installatiescripts (shar/Makeself, inclusief .run) verbergen een payload na het script - voer deze alleen uit van de officiële leverancier. Een .sh is niet automatisch gevaarlijk, maar het is code, dus vertrouw de bron.
Formaatdetails
in een notendopProgramma's die SH-bestanden openen
Technische details
diepe specificaties| Bestandstype | Platte tekst uitvoerbaar shell-script |
| MIME-type | application/x-sh |
| Shebang-conventie | Eerste regel declareert interpreter: #!/bin/sh, #!/bin/bash, of #!/usr/bin/env bash |
| Karaktercodering | UTF-8 of ASCII; codering moet worden ondersteund door de doel-shell |
| Regeleinden | LF (Unix-stijl) vereist; CRLF-regeleinden veroorzaken syntaxis-fouten op de meeste shells |
| Uitvoeringsmethode | Aanroepen met bash script.sh, of uitvoerbit instellen (chmod +x) en direct uitvoeren als ./script.sh |
| Commentaar-syntaxis | # karakter; alles van # tot het einde van de regel wordt genegeerd door de interpreter |
| Variabele toewijzing | Geen typedeclaratie vereist; VAR=waarde (geen spaties rond =); aangeroepen als $VAR of ${VAR} |
| Exit-code conventie | 0 = succes; elke andere waarde = fout; geretourneerd via exit N of gecontroleerd in $? |
| POSIX-portabiliteit | Scripts geschreven volgens de POSIX sh-standaard werken op bash, dash, ksh en elke conforme shell |
| Foutafhandeling vlaggen | set -e stopt bij de eerste fout; set -u behandelt ongedefinieerde variabelen als fouten; set -o pipefail vangt fouten in pipes op |
| Platformondersteuning | Standaard op Linux en macOS; beschikbaar op Windows via WSL, Git Bash of Cygwin |
| Primaire interpreter | Bash (GNU Bourne-Again Shell); ook dash, ksh of zsh afhankelijk van de shebang-regel |
| Script-debugging | set -x schakelt trace-modus in, waarbij elk commando voor uitvoering wordt geprint; bash -n controleert syntaxis zonder uit te voeren |
| Uitgebracht | 1979 (Bourne shell, Unix V7); POSIX shell standardized; Bash 1989 |
| Open standaard | Ja · royaltyvrij |
| Specificatie | pubs.opengroup.org |
SH conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over SH-bestanden.