Vad är filformatet SH?
.sh är en vanlig filändelse för Unix-skal, som används av bash (Bourne-again shell) och andra POSIX-kompatibla skal. .sh-filer lagrar shell-skript - sekvenser av kommandon och instruktioner skrivna i skalspråk, sparade som klartext.
.sh-filer skapas i valfri textredigerare och används främst för skript som körs via en Unix-kommandorad. En .sh-fil börjar vanligtvis med en shebang-rad - såsom #!/bin/sh eller #!/bin/bash - som talar om för operativsystemet vilken tolk som ska anropas. För att köra ett skript direkt måste filen göras körbar med chmod +x filnamn.sh.
Bash är ett tolkat kommandospråk och ett fritt Unix-skal distribuerat under GNU-licensen, vilket används som standard på många Linux- och macOS-system. De flesta system i Unix-familjen stöder detta skal. Bash ersatte det ursprungliga Bourne-skalet, därav namnet - Bourne-again.
.sh-filer kan också användas för att spara skript avsedda för andra skal, såsom Korn Shell, Z Shell, C Shell eller Bourne Shell. På Windows hanteras motsvarande automatisering av batch-filer eller PowerShell-skript. Eftersom .sh konventionellt signalerar POSIX-kompatibilitet, deklarerar skript som riktar sig till ett specifikt skal sin tolk explicit i shebang-raden.
Säkerhet & trygghet
RISK: MEDIUMEn .sh-fil är Unix-motsvarigheten till att köra godtyckliga kommandon: när den körs kan den göra allt som användaren har behörighet till - radera filer, installera programvara, extrahera data eller köra skadlig kod. Det ökända mönstret «curl URL | bash» kör ett fjärrskript utan möjlighet till granskning. Säkerhetsregler: (1) Kör ALDRIG en .sh från en okänd källa utan att läsa den först - det är klartext, så öppna den i en redigerare och kontrollera vad den gör; (2) var vaksam på dolda enradare, base64-block eller skript som skickar data till sudo; (3) självuppackande installationsskript (shar/Makeself, inklusive .run) döljer en nyttolast efter skriptet - kör endast dessa från officiella leverantörer. En .sh är inte automatiskt farlig, men det är kod, så lita på källan.
Formatdetaljer
i ett nötskalProgram som öppnar SH-filer
Tekniska detaljer
djup specifikation| Filtyp | Körbart shell-skript i klartext |
| MIME-typ | application/x-sh |
| Shebang-konvention | Första raden deklarerar tolken: #!/bin/sh, #!/bin/bash, eller #!/usr/bin/env bash |
| Teckenkodning | UTF-8 eller ASCII; kodningen måste stödjas av målskalet |
| Radbrytningar | LF (Unix-stil) krävs; CRLF-radbrytningar orsakar syntaxfel i de flesta skal |
| Exekveringsmetod | Anropa med bash script.sh, eller sätt körbiten (chmod +x) och kör direkt som ./script.sh |
| Kommentarsyntax | #-tecknet; allt från # till radens slut ignoreras av tolken |
| Variabeltilldelning | Ingen typdeklaration krävs; VAR=värde (inga mellanslag runt =); nås som $VAR eller ${VAR} |
| Konvention för slutkoder | 0 = framgång; alla nollskilda värden = fel; returneras via exit N eller inspekteras i $? |
| POSIX-portabilitet | Skript skrivna enligt POSIX sh-standard körs på bash, dash, ksh och alla kompatibla skal |
| Flaggor för felhantering | set -e avslutar vid första fel; set -u behandlar odefinierade variabler som fel; set -o pipefail fångar fel i pipes |
| Plattformssupport | Nativt på Linux och macOS; tillgängligt på Windows via WSL, Git Bash eller Cygwin |
| Huvudsaklig tolk | Bash (GNU Bourne-Again Shell); även dash, ksh eller zsh beroende på shebang-raden |
| Felsökning av skript | set -x aktiverar spårningsläge och skriver ut varje kommando före körning; bash -n kontrollerar syntax utan att köra |
| Släppt | 1979 (Bourne shell, Unix V7); POSIX shell standardized; Bash 1989 |
| Öppen standard | Ja · royaltyfri |
| Specifikation | pubs.opengroup.org |
SH-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om SH-filer.