Android

Bash shebang

Shell Scripting - Introduction & Shebang

Shell Scripting - Introduction & Shebang

Inhoudsopgave:

Anonim

Deze reeks tekens ( #! ) Wordt shebang genoemd en wordt gebruikt om het besturingssysteem te vertellen welke interpreter moet worden gebruikt om de rest van het bestand te parseren.

Shebang-interpretatierichtlijn

De Shebang-interpretatierichtlijn heeft de volgende vorm:

#!interpreter

  • De richtlijn moet de eerste regel in het script zijn. De richtlijn moet beginnen met shebang #! Witruimte achter de shebang-tekens is optioneel. Interpreter is het volledige pad naar een binair bestand (bijvoorbeeld: /bin/sh , /bin/bash ). Interpreter-argumenten zijn optioneel.

Voorbeelden:

  • #!/bin/bash - Gebruikt bash om het bestand te parseren. #!/usr/bin/env perl - Gebruikt de opdracht env om het pad naar het uitvoerbare perl te vinden. #!/usr/bin/python Voert het bestand uit met behulp van de binaire python .

Shebang gebruiken in Bash-scripts

Als er geen shebang is opgegeven en de gebruiker die het Bash-script uitvoert, een andere Shell gebruikt, wordt het script ontleed door de standaardinterpreter die door die Shell wordt gebruikt. De standaardinterpreter voor bash is bijvoorbeeld bash en voor zsh is sh . Om ervoor te zorgen dat uw script altijd met Bash wordt geïnterpreteerd, moet u het uitvoerbare pad opgeven met shebang.

Er zijn twee manieren om de Shebang-richtlijn te gebruiken en de tolk in te stellen.

  1. Het absolute pad naar de bash-binaire gebruiken:

    #!/bin/bash

    Het env hulpprogramma gebruiken:

    #!/usr/bin/env bash

Het voordeel van het gebruik van de tweede benadering is dat wordt gezocht naar het bash uitvoerbare bestand in de omgevingsvariabele $PATH de gebruiker. Als er meer dan één pad is om te bash , zal het eerste door het script worden gebruikt.

Wanneer u de eerste optie gebruikt om een ​​optie aan de toevoer van de Bash-shell toe te voegen, geeft u deze door aan de tolk. Als u het script bijvoorbeeld in een foutopsporingsmodus wilt uitvoeren, gebruikt u #!/bin/bash -x . Als u de env methode gebruikt, moet u set gebruiken om de optie aan te geven. Om de foutopsporingsmodus in te schakelen, voegt u set -x na de shebang-regel.

Voorbeeldscript

Laten we een eenvoudig script maken met behulp van shebang dat "Hallo wereld" afdrukt. Open uw teksteditor en plak de volgende regel:

nano hello_world Hallo Wereld

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

Om het script te kunnen uitvoeren zonder de tolk op te geven vanaf de opdrachtregel, moet u het bestand uitvoerbaar maken:

chmod +x hello_world

Als u het script nu kunt uitvoeren door ./ typen, gevolgd door de scriptnaam:

./hello_world

Hello, World

De Shebang overschrijven

Als u om een ​​of andere reden de tolk wilt overschrijven die is ingesteld in de Shebang-regel, moet u het script uitvoeren door de gewenste shell expliciet op te geven.

Als u bijvoorbeeld een script wilt uitvoeren dat #!/bin/sh opgegeven in de Shebang-regel met de bash shell, typt u:

bash hello_world

Houd er rekening mee dat het geen goed idee is om de shell-interpreter te negeren, omdat dit kan leiden tot onverwacht gedrag van het script.

Conclusie

Nu zou je een goed begrip moeten hebben van wat Shebang is en hoe je het kunt gebruiken in je Bash-scripts.

bash-terminal