Hvad er SH-filformatet?
.sh er en almindelig Unix-shell-filendelse, der bruges af bash (Bourne-again shell) og andre POSIX-kompatible shells. .sh-filer gemmer shell-scripts - sekvenser af kommandoer og instruktioner skrevet i shell-sprog, gemt som almindelig tekst.
.sh-filer oprettes i et hvilket som helst tekstredigeringsprogram og bruges hovedsageligt til scripts, der eksekveres af en Unix-shell-kommandolinje. En .sh-fil begynder typisk med en shebang-linje - såsom #!/bin/sh eller #!/bin/bash - som fortæller operativsystemet, hvilken fortolker der skal kaldes. For at køre et script direkte skal filen gøres eksekverbar med chmod +x filnavn.sh.
Bash er et fortolket kommandosprog og en gratis Unix-shell distribueret under GNU-licensen, der bruges som standard på mange Linux- og macOS-systemer. De fleste systemer i Unix-familien understøtter denne shell. Bash erstattede den oprindelige Bourne-shell, heraf navnet - Bourne-again.
.sh-filer kan også bruges til at gemme scripts beregnet til andre shells, såsom Korn Shell, Z Shell, C Shell eller Bourne Shell. På Windows håndteres tilsvarende automatisering af batch-filer eller PowerShell-scripts. Da .sh konventionelt signalerer POSIX-shell-kompatibilitet, deklarerer scripts, der er målrettet en specifik shell, deres fortolker eksplicit i shebang-linjen.
Sikkerhed og tryghed
RISIKO: MEDIUMEn .sh-fil er Unix-ækvivalenten til at køre vilkårlige kommandoer: når den eksekveres, kan den gøre alt, hvad brugeren kan - slette filer, installere software, lække data eller køre malware. Det berygtede „curl URL | bash“-mønster kører et eksternt script uden chance for at inspicere det. Sikkerhedsregler: (1) Kør ALDRIG en .sh fra en upålidelig kilde uden at læse den først - det er almindelig tekst, så åbn den i et redigeringsprogram og tjek, hvad den gør; (2) vær påpasselig med slørede one-liners, base64-blokke eller scripts, der sender data videre til sudo; (3) selvudpakkende installationsscripts (shar/Makeself, inklusiv .run) skjuler en payload efter scriptet - kør dem kun fra den officielle leverandør. En .sh er ikke automatisk farlig, men det er kode, så stol på kilden.
Formatdetaljer
kort fortaltProgrammer der åbner SH-filer
Tekniske detaljer
dyb specifikation| Filtype | Eksekverbart shell-script i almindelig tekst |
| MIME-type | application/x-sh |
| Shebang-konvention | Første linje deklarerer fortolker: #!/bin/sh, #!/bin/bash, eller #!/usr/bin/env bash |
| Tegnkodning | UTF-8 eller ASCII; kodningen skal understøttes af mål-shellen |
| Linjeskift | LF (Unix-stil) påkrævet; CRLF-linjeskift forårsager syntaksfejl i de fleste shells |
| Eksekveringsmetode | Kald med bash script.sh, eller indstil eksekverings-bit (chmod +x) og kør direkte som ./script.sh |
| Kommentarsyntaks | # tegn; alt fra # til slutningen af linjen ignoreres af fortolkeren |
| Variabeltildeling | Ingen typedeklaration påkrævet; VAR=værdi (ingen mellemrum omkring =); tilgås som $VAR eller ${VAR} |
| Exit-kode konvention | 0 = succes; enhver værdi forskellig fra nul = fejl; returneres via exit N eller inspiceres i $? |
| POSIX-portabilitet | Scripts skrevet til POSIX sh-standarden kører på bash, dash, ksh og enhver kompatibel shell |
| Fejlhåndteringsflag | set -e afslutter ved første fejl; set -u behandler udefinerede variabler som fejl; set -o pipefail fanger fejl i pipes |
| Platformunderstøttelse | Indfødt på Linux og macOS; tilgængelig på Windows via WSL, Git Bash eller Cygwin |
| Primær fortolker | Bash (GNU Bourne-Again Shell); også dash, ksh eller zsh afhængigt af shebang-linjen |
| Script-fejlfinding | set -x aktiverer sporingstilstand og udskriver hver kommando før eksekvering; bash -n tjekker syntaks uden at køre |
| Udgivet | 1979 (Bourne shell, Unix V7); POSIX shell standardized; Bash 1989 |
| Åben standard | Ja · royaltyfri |
| Specifikation | pubs.opengroup.org |
SH-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om SH-filer.