Co oznacza #!/bin/bash i dlaczego powinieneś go używać

Ostatnia aktualizacja: 20/08/2024

Co znaczy binbash?

Jeśli stawiasz pierwsze kroki jako skrypter w systemach operacyjnych Unix, zauważysz, jak często używana jest linia kodu #!/bin/bash. Zrozumienie ich znaczenia i wagi może pomóc w pisaniu bardziej wydajnych i niezawodnych skryptów Bash.. W tym wpisie znajdziesz wszystkie podstawowe pojęcia, które musisz opanować, żeby lepiej to zrozumieć.

Mówiąc najprościej, linia #!/bin/bash, znana również jako „shabang” lub „hashbang”, to mechanizm informujący system operacyjny, jakiego programu użyć do interpretacji poniższego kodu. Zrozumienie, jak to działa i kiedy konieczne jest jego użycie, może być nieco mylące. Dlatego poniżej szczegółowo opisujemy jego pełne znaczenie w świetle innych powiązanych terminów i koncepcji.

Co oznacza #!/bin/bash? Podstawy

Co oznacza #!/bin/bash

Aby zrozumieć, co oznacza #!/bin/bash, ważne jest, aby przejrzeć kilka podstawowych pojęć związanych z programowaniem. Warto zacząć od przypomnienia, że ​​Bash jest skryptowy język programowania szeroko stosowany w systemach operacyjnych typu Unix, takich jak Linux i macOS. Również działa jako interpreter wiersza poleceń (Shell), za pomocą którego można uruchamiać skrypty i inne pliki z rozszerzeniem .sh.

Dlatego pisząc skrypt w języku Bash zwyczajowo zaczyna się plik od linii #!/bin/bash. Ponieważ? Ponieważ w ten sposób system operacyjny otrzymuje informację, jakiego interpretera poleceń powinien użyć do rozpoznania i wykonania kodu. W tym konkretnym przypadku zostaniesz poproszony o uruchomienie pliku bash z powłoką bash.

Ekskluzywna zawartość — kliknij tutaj  Jak mogę programować szybciej? Praktyczne wskazówki

Większość systemów operacyjnych Unix domyślnie używa powłoki bash jako interpretera poleceń, więc nie ma potrzeby jej określania. Jednakże, czasami domyślna powłoka nie jest skonfigurowana dla bash, co uniemożliwia wykonanie pliku. Dlatego dobrą praktyką jest używanie linii #!/bin/bash jako punktu wyjścia dla wszystkich skryptów tworzonych w Bash. Dzięki temu skrypt zostanie wykonany przez poprawną powłokę, niezależnie od środowiska, w którym jest on wykonywany.

Dlaczego nazywa się to linią „shabang” lub „hashbang”?

znaczenie #!/bin/bash

Jak powiedzieliśmy na początku, linia #!/bin/bash jest znana w środowiskach Unixowych jako „shabang” lub „hashbang”. Termin ten powstał z połączenia nazw dwóch pierwszych symboli (#!): „ostry” lub „hasztag” (#) i symbolu „huk” (!). Więc, Shabang (she-bang) w informatyce to sekwencja znaku liczby i wykrzyknika na początku skryptu programistycznego. 

W istocie funkcją Shebang jest poinformuj system operacyjny, jakiego interpretera użyć do wykonania skryptu. Oznaczenie to jest szeroko stosowane w Unix oraz Linux, gdzie skrypty są niezbędne do automatyzacji zadań i zarządzania systemem. Niektóre typowe przykłady tej sekwencji znaków Są one następujące:

  • #!/bin/bash: Uruchom skrypt przy użyciu powłoki Bash ze ścieżką /bin/bash.
  • #!/bin/sh: Uruchom skrypt za pomocą powłoki Bourne lub innej kompatybilnej powłoki.
  • #!/usr/perl-T: Uruchom skrypt używając Perla z opcją kontroli skażenia.
  • #!/bin/csh-f: Uruchom skrypt przy użyciu powłoki C lub innej kompatybilnej.
  • #!/usr/bin/env python: Uruchom skrypt, używając poprawnej wersji interpretera Pythona.
Ekskluzywna zawartość — kliknij tutaj  Różnica między asemblerem a kompilatorem

Dlaczego ważne jest używanie linii shebang w skryptach Bash?

Programowanie na Macbooku

Podczas tworzenia skryptów za pomocą Bash bardzo ważne jest, aby napisać shebang w pierwszej linii pliku. Tędy, Podczas uruchamiania skryptu system operacyjny odczytuje pierwszą linię i identyfikuje interpreter. Następnie system ładuje program bash do pamięci, która z kolei odczytuje skrypt linia po linii, interpretując każde polecenie i wykonując je.

Jak widać Wskazując bash w linii shebang, upewniasz się, że skrypt zostanie wykonany poprawnie. Pamiętaj, że istnieją inne interpretery poleceń, takie jak Python i Perl, które mają inną składnię i funkcjonalność. Jeśli nie określisz, którego użyć, system operacyjny będzie musiał zgadnąć, co spowalnia lub uniemożliwia wykonanie skryptu. W rzeczywistości może być konieczne ręczne określenie interpretera przy każdym uruchomieniu skryptu, co może prowadzić do błędów.

Ekskluzywna zawartość — kliknij tutaj  Różnice pomiędzy szyfrowaniem symetrycznym i asymetrycznym: jak prawidłowo chronić swoje dane

Dodaj także linię #!/bin/bash w skryptach bash umożliwia płynne działanie tych plików w różnych systemach operacyjnych. Oczywiście, aby było to możliwe, w systemie musi być wcześniej zainstalowany interpreter poleceń Bash. W większości przypadków Linux i macOS mają go domyślnie zainstalowanego. Z drugiej strony, jeśli korzystasz z systemu operacyjnego Microsoft, będziesz musiał wykonać pewne kroki zainstaluj Basha na Windows 10 e zainstaluj Basha na Windows 11.

Wniosek: linia #!/bin/bash

Podsumowując, możemy powiedzieć, że Linia #!/bin/bash jest niezbędna dla każdego skryptu Bash. Zapis ten pozwala na wskazanie interpretera poleceń potrzebnego do wykonania poniższych linijek kodu. Nie zapomnij zawsze umieścić go na początku swoich skryptów, aby zapewnić ich poprawny odczyt i wykonanie.