Android

Bash shebang

Shell Scripting - Introduction & Shebang

Shell Scripting - Introduction & Shebang

Indholdsfortegnelse:

Anonim

Denne sekvens af tegn ( #! ) Kaldes shebang og bruges til at fortælle operativsystemet, hvilken tolk der skal bruges til at analysere resten af ​​filen.

Direktiv om Shebang-tolk

Direktivet om Shebang-tolk har følgende form:

#!interpreter

  • Direktivet skal være den første linje i scriptet. Direktivet skal starte med shebang #! Hvid plads efter shebang-tegnene er valgfri. Tolk er den fulde sti til en binær fil (eks: /bin/sh , /bin/bash ). Interpreter-argumenter er valgfri.

Eksempler:

  • #!/bin/bash - Bruger bash til at analysere filen. #!/usr/bin/env perl - Bruger env kommandoen til at finde stien til den eksekverbare perl . #!/usr/bin/python Kører filen ved hjælp af den binære python .

Brug af Shebang i Bash-scripts

Hvis der ikke er angivet en shebang, og brugeren, der kører Bash-scriptet, bruger et andet Shell, vil scriptet blive parset af uanset hvilket standardtolk der bruges af det Shell. For eksempel er standardtolken for bash bash og for zsh er sh . For at sikre, at dit script altid bliver fortolket med Bash, skal du specificere den eksekverbare sti ved hjælp af shebang.

Der er to måder at bruge Shebang-direktivet og indstille tolk.

  1. Brug af den absolutte sti til bash binæren:

    #!/bin/bash

    Brug af env værktøjet:

    #!/usr/bin/env bash

Fordelen ved at bruge den anden metode er, at den søger efter den bash køres i brugerens $PATH miljøvariabel. Hvis der er mere end en sti til bash , bruges den første af scriptet.

Når du bruger den første mulighed for at tilføje en indstilling til Bash shell-forsyningen, skal du sende den til tolken. For eksempel at køre scriptet i en debugtilstand, ville du bruge #!/bin/bash -x . Hvis du bruger env metoden, skal du bruge set til at erklære indstillingen. For at aktivere debugtilstand tilføjede du set -x efter shebang-linjen.

Eksempel script

Lad os oprette et simpelt script ved hjælp af shebang, der udskriver "Hej, verden". Åbn din teksteditor og indsæt følgende linje:

nano hello_world Hej Verden

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

For at kunne køre scriptet uden at specificere tolken fra kommandolinjen skal du gøre filen eksekverbar:

chmod +x hello_world

Hvis du nu kan køre scriptet ved at skrive ./ efterfulgt af scriptnavnet:

./hello_world

Hello, World

Overstyrer Shebang

Hvis du af en eller anden grund ønsker at tilsidesætte det tolk, der er sat i Shebang-linjen, skal du køre scriptet ved eksplicit at specificere det ønskede shell.

For eksempel at køre et script, der har #!/bin/sh specificeret i Shebang-linjen ved hjælp af den bash shell, du vil skrive:

bash hello_world

Bemærk, det er ikke en god ide at tilsidesætte shell-tolken, da det kan føre til uventet opførsel af scriptet.

Konklusion

Nu skal du have en god forståelse af, hvad der er Shebang, og hvordan du bruger det i dine Bash-scripts.

bash terminal