Co to jest format pliku SH?
.sh to popularne rozszerzenie pliku powłoki Unix, używane przez bash (Bourne-again shell) i inne powłoki zgodne z POSIX. Pliki .sh przechowują skrypty powłoki - sekwencje poleceń i instrukcji napisanych w języku powłoki, zapisane jako zwykły tekst.
Pliki .sh są tworzone w dowolnym edytorze tekstu i służą głównie do skryptów wykonywanych przez linię poleceń powłoki Unix. Plik .sh zazwyczaj zaczyna się od linii shebang - takiej jak #!/bin/sh lub #!/bin/bash - która informuje system operacyjny, jaki interpreter należy wywołać. Aby uruchomić skrypt bezpośrednio, plik musi zostać oznaczony jako wykonywalny za pomocą chmod +x filename.sh.
Bash to interpretowany język poleceń i darmowa powłoka Unix dystrybuowana na licencji GNU, używana domyślnie w wielu systemach Linux i macOS. Większość systemów z rodziny Unix obsługuje tę powłokę. Bash zastąpił oryginalną powłokę Bourne'a, stąd nazwa - Bourne-again.
Pliki .sh mogą być również używane do zapisywania skryptów przeznaczonych dla innych powłok, takich jak Korn Shell, Z Shell, C Shell lub Bourne Shell. W systemie Windows analogiczna automatyzacja jest obsługiwana przez pliki wsadowe lub skrypty PowerShell. Ponieważ rozszerzenie .sh konwencjonalnie sygnalizuje zgodność z powłoką POSIX, skrypty przeznaczone dla konkretnej powłoki deklarują swój interpreter jawnie w linii shebang.
Bezpieczeństwo
RYZYKO: MEDIUMPlik .sh jest odpowiednikiem uruchamiania dowolnych poleceń w systemie Unix: po wykonaniu może zrobić wszystko, co może użytkownik - usuwać pliki, instalować oprogramowanie, wykradać dane lub uruchamiać złośliwe oprogramowanie. Znany wzorzec „curl URL | bash” uruchamia zdalny skrypt bez możliwości jego sprawdzenia. Zasady bezpieczeństwa: (1) NIGDY nie uruchamiaj .sh z niezaufanego źródła bez uprzedniego przeczytania go - to zwykły tekst, więc otwórz go w edytorze i sprawdź, co robi; (2) uważaj na zaciemnione jednolinijkowce, bloki base64 lub skrypty przekierowujące do sudo; (3) samorozpakowujące się skrypty instalacyjne (shar/Makeself, w tym .run) ukrywają dane binarne za skryptem - uruchamiaj je tylko od oficjalnych dostawców. Plik .sh nie jest automatycznie niebezpieczny, ale jest kodem, więc ufaj źródłu.
Szczegóły formatu
w pigułceProgramy otwierające pliki SH
Szczegóły techniczne
specyfikacja| Typ pliku | Wykonywalny skrypt powłoki w formacie tekstowym |
| Typ MIME | application/x-sh |
| Konwencja shebang | Pierwsza linia deklaruje interpreter: #!/bin/sh, #!/bin/bash lub #!/usr/bin/env bash |
| Kodowanie znaków | UTF-8 lub ASCII; kodowanie musi być obsługiwane przez docelową powłokę |
| Końce linii | Wymagane LF (styl Unix); końce linii CRLF powodują błędy składni w większości powłok |
| Metoda wykonywania | Wywołaj przez bash script.sh lub ustaw bit wykonywalności (chmod +x) i uruchom bezpośrednio jako ./script.sh |
| Składnia komentarzy | Znak #; wszystko od # do końca linii jest ignorowane przez interpreter |
| Przypisywanie zmiennych | Brak wymaganej deklaracji typu; VAR=wartość (bez spacji wokół =); dostęp przez $VAR lub ${VAR} |
| Konwencja kodów wyjścia | 0 = sukces; każda wartość niezerowa = błąd; zwracane przez exit N lub sprawdzane w $? |
| Przenośność POSIX | Skrypty napisane zgodnie ze standardem POSIX sh działają w bash, dash, ksh i każdej zgodnej powłoce |
| Flagi obsługi błędów | set -e kończy działanie przy pierwszym błędzie; set -u traktuje nieustawione zmienne jako błędy; set -o pipefail wyłapuje błędy w potokach |
| Obsługa platform | Natywna w Linux i macOS; dostępna w Windows przez WSL, Git Bash lub Cygwin |
| Główny interpreter | Bash (GNU Bourne-Again Shell); także dash, ksh lub zsh w zależności od linii shebang |
| Debugowanie skryptu | set -x włącza tryb śledzenia, drukując każde polecenie przed wykonaniem; bash -n sprawdza składnię bez uruchamiania |
| Wydano | 1979 (Bourne shell, Unix V7); POSIX shell standardized; Bash 1989 |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | pubs.opengroup.org |
Konwersje SH
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki SH.