Android

Bash shebang

Shell Scripting - Introduction & Shebang

Shell Scripting - Introduction & Shebang

Spisu treści:

Anonim

Ta sekwencja znaków ( #! ) Nazywa się shebang i służy do poinformowania systemu operacyjnego, którego interpretera użyć do przeanalizowania reszty pliku.

Dyrektywa w sprawie tłumacza Shebang

Dyrektywa tłumacza Shebang przybiera następującą formę:

#!interpreter

  • Dyrektywa musi być pierwszą linią skryptu. Dyrektywa musi zaczynać się od shebang #! Białe znaki po znakach shebang są opcjonalne. Interpreter to pełna ścieżka do pliku binarnego (np.: /bin/sh , /bin/bash ). Argumenty interpretera są opcjonalne.

Przykłady:

  • #!/bin/bash - Używa bash do parsowania pliku. #!/usr/bin/env perl - Używa polecenia env do znalezienia ścieżki do pliku wykonywalnego perl . #!/usr/bin/python Wykonuje plik przy użyciu pliku binarnego python .

Używanie Shebang w skryptach Bash

Jeśli shebang nie jest określony, a użytkownik uruchamiający skrypt Bash używa innej powłoki, skrypt zostanie przeanalizowany przez dowolny domyślny interpreter używany przez tę powłokę. Na przykład domyślnym interpretatorem bash jest bash a dla zsh sh . Aby mieć pewność, że Twój skrypt będzie zawsze interpretowany za pomocą Bash, musisz określić ścieżkę wykonywalną za pomocą shebang.

Istnieją dwa sposoby użycia dyrektywy Shebang i ustawienia interpretera.

  1. Korzystanie z bezwzględnej ścieżki do pliku bash bash:

    #!/bin/bash

    Za pomocą narzędzia env :

    #!/usr/bin/env bash

Zaletą zastosowania drugiego podejścia jest to, że będzie szukał pliku wykonywalnego bash w zmiennej środowiskowej $PATH użytkownika. Jeśli istnieje więcej niż jedna ścieżka do bash , skrypt użyje pierwszej.

Podczas korzystania z pierwszej opcji, aby dodać opcję do powłoki Bash, przekaż ją do tłumacza. Na przykład, aby uruchomić skrypt w trybie debugowania, użyj #!/bin/bash -x . Jeśli używasz metody env , musisz użyć set aby zadeklarować opcję. Aby włączyć tryb debugowania, należy dodać set -x po linii shebang.

Przykładowy skrypt

Stwórzmy prosty skrypt za pomocą shebang, który wypisze „Hello, World”. Otwórz edytor tekstu i wklej następujący wiersz:

nano hello_world Witaj świecie

#!/bin/bash echo "Hello, World"

Aby móc uruchomić skrypt bez określania interpretera z wiersza poleceń, musisz wykonać plik:

chmod +x hello_world

Teraz, jeśli możesz uruchomić skrypt, wpisując ./ a następnie nazwę skryptu:

./hello_world

Hello, World

Przesłanianie Shebang

Jeśli z jakiegoś powodu chcesz przesłonić interpreter ustawiony w linii Shebang, musisz uruchomić skrypt, wyraźnie określając żądaną powłokę.

Na przykład, aby uruchomić skrypt, który ma #!/bin/sh w wierszu Shebang przy użyciu powłoki bash którą napiszesz:

bash hello_world

Uwaga: przesłonięcie interpretera powłoki nie jest dobrym pomysłem, ponieważ może to prowadzić do nieoczekiwanego zachowania skryptu.

Wniosek

Do tej pory powinieneś dobrze rozumieć, czym jest Shebang i jak go używać w skryptach Bash.

terminal bash