Was ist das SH-Dateiformat?
.sh ist eine verbreitete Unix-Shell-Dateiendung, die von bash (Bourne-again Shell) und anderen POSIX-kompatiblen Shells verwendet wird. .sh-Dateien speichern Shell-Skripte - Folgen von Befehlen und Anweisungen in Shell-Sprache, gespeichert als einfacher Text.
.sh-Dateien werden in jedem Texteditor erstellt und hauptsächlich für Skripte verwendet, die von einer Unix-Shell-Befehlszeile ausgeführt werden. Eine .sh-Datei beginnt typischerweise mit einer Shebang-Zeile - wie #!/bin/sh oder #!/bin/bash - die dem Betriebssystem mitteilt, welchen Interpreter es verwenden soll. Um ein Skript direkt auszuführen, muss die Datei mit chmod +x filename.sh ausführbar gemacht werden.
Bash ist eine interpretierte Befehlssprache und eine freie Unix-Shell, die unter der GNU-Lizenz vertrieben wird und standardmäßig auf vielen Linux- und macOS-Systemen eingesetzt wird. Die meisten Unix-ähnlichen Systeme unterstützen diese Shell. Bash ersetzte die ursprüngliche Bourne-Shell - daher der Name: Bourne-again.
.sh-Dateien können auch für Skripte anderer Shells verwendet werden, wie Korn Shell, Z Shell, C Shell oder Bourne Shell. Unter Windows übernehmen Batch-Dateien oder PowerShell-Skripte entsprechende Automatisierungsaufgaben. Da .sh herkömmlicherweise POSIX-Shell-Kompatibilität signalisiert, deklarieren Skripte, die auf eine bestimmte Shell abzielen, ihren Interpreter explizit in der Shebang-Zeile.
Sicherheit
RISIKO: MEDIUMEine .sh-Datei ist das Unix-Äquivalent zum Ausführen beliebiger Befehle: Bei der Ausführung kann sie alles tun, was der Benutzer tun kann - Dateien löschen, Software installieren, Daten exfiltrieren oder Schadsoftware ausführen. Das bekannte Muster „curl URL | bash“ führt ein Remote-Skript aus, ohne die Möglichkeit, es vorher zu prüfen. Sicherheitsregeln: (1) Führen Sie NIEMALS eine .sh aus einer nicht vertrauenswürdigen Quelle aus, ohne sie vorher zu lesen - es ist einfacher Text, öffnen Sie es in einem Editor und prüfen Sie, was es tut; (2) seien Sie vorsichtig bei verschleierten Einzeilern, Base64-Blöcken oder Skripten, die an sudo weiterleiten; (3) selbstentpackende Installationsskripte (shar/Makeself, einschließlich .run) verbergen eine Nutzlast nach dem Skript - führen Sie diese nur vom offiziellen Anbieter aus. Eine .sh ist nicht automatisch gefährlich, aber es ist Code - vertrauen Sie der Quelle.
Formatdetails
kurz gefasstProgramme zum Öffnen von SH-Dateien
Technische Details
technische Spezifikation| Dateityp | Ausführbares Shell-Skript (einfacher Text) |
| MIME-Typ | application/x-sh |
| Shebang-Konvention | Erste Zeile deklariert den Interpreter: #!/bin/sh, #!/bin/bash oder #!/usr/bin/env bash |
| Zeichenkodierung | UTF-8 oder ASCII; die Kodierung muss von der Ziel-Shell unterstützt werden |
| Zeilenenden | LF (Unix-Stil) erforderlich; CRLF-Zeilenenden verursachen Syntaxfehler in den meisten Shells |
| Ausführungsmethode | Mit bash script.sh aufrufen oder Ausführungsbit setzen (chmod +x) und direkt als ./script.sh starten |
| Kommentarsyntax | Zeichen #; alles von # bis zum Zeilenende wird vom Interpreter ignoriert |
| Variablenzuweisung | Keine Typdeklaration erforderlich; VAR=value (keine Leerzeichen um =); Zugriff über $VAR oder ${VAR} |
| Exit-Code-Konvention | 0 = Erfolg; jeder Wert ungleich null = Fehler; zurückgegeben über exit N oder inspiziert in $? |
| POSIX-Portabilität | Nach dem POSIX-sh-Standard geschriebene Skripte laufen auf bash, dash, ksh und jeder konformen Shell |
| Fehlerbehandlungs-Flags | set -e beendet bei erstem Fehler; set -u behandelt ungesetzte Variablen als Fehler; set -o pipefail fängt Pipe-Fehler ab |
| Plattformunterstützung | Nativ unter Linux und macOS; unter Windows verfügbar über WSL, Git Bash oder Cygwin |
| Primärer Interpreter | Bash (GNU Bourne-Again Shell); auch dash, ksh oder zsh, abhängig von der Shebang-Zeile |
| Skript-Debugging | set -x aktiviert den Trace-Modus und gibt jeden Befehl vor der Ausführung aus; bash -n prüft die Syntax, ohne das Skript auszuführen |
| Veröffentlicht | 1979 (Bourne shell, Unix V7); POSIX shell standardized; Bash 1989 |
| Offener Standard | Ja · lizenzgebührenfrei |
| Spezifikation | pubs.opengroup.org |
SH-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu SH-Dateien.