Android

Bash shebang

Shell Scripting - Introduction & Shebang

Shell Scripting - Introduction & Shebang

Innehållsförteckning:

Anonim

Denna sekvens med tecken ( #! ) Kallas shebang och används för att berätta för operativsystemet vilken tolk som ska användas för att analysera resten av filen.

Shebang-tolkningsdirektivet

Direktivet om Shebang-tolkar har följande form:

#!interpreter

  • Direktivet måste vara den första raden i skriptet. Direktivet måste börja med shebang #! Vitt utrymme efter shebang-tecknen är valfritt. Tolk är den fulla sökvägen till en binär fil (ex: /bin/sh , /bin/bash ). Interpreter-argument är valfria.

Exempel:

  • #!/bin/bash - Använder bash att analysera filen. #!/usr/bin/env perl - Använder env kommandot för att hitta sökvägen till den körbara perl . #!/usr/bin/python Kör filen med binär python .

Använda Shebang i Bash-skript

Om en shebang inte anges och användaren som kör Bash-skriptet använder ett annat Shell kommer skriptet att analyseras av vad standardtolkaren som används av det Shell. Till exempel är standardtolkaren för bash bash och för zsh är sh . För att säkerställa att ditt skript alltid tolkas med Bash måste du ange den körbara sökvägen med shebang.

Det finns två sätt att använda Shebang-direktivet och ställa in tolk.

  1. Använda den absoluta sökvägen till bash binär:

    #!/bin/bash

    Använda env verktyget:

    #!/usr/bin/env bash

Fördelen med att använda den andra metoden är att den söker efter den bash köras i användarens miljövariabel $PATH . Om det finns mer än en väg att bash , kommer den första att användas av skriptet.

När du använder det första alternativet för att lägga till ett alternativ till Bash-skaltillförseln, skicka det till tolkaren. Till exempel, för att köra skriptet i ett felsökningsläge skulle du använda #!/bin/bash -x . Om du använder env metoden måste du använda set att förklara alternativet. För att aktivera felsökningsläget lägger du till set -x efter shebang-linjen.

Exempel Skript

Låt oss skapa ett enkelt manus med shebang som kommer att skriva ut "Hej, världen". Öppna din textredigerare och klistra in följande rad:

nano hello_world Hej världen

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

För att kunna köra skriptet utan att ange tolk från kommandoraden måste du göra filen körbar:

chmod +x hello_world

Om du nu kan köra skriptet genom att skriva ./ följt av skriptnamnet:

./hello_world

Hello, World

Överbryter Shebang

Om du av någon anledning vill åsidosätta tolkuppsättningen i Shebang-linjen måste du köra skriptet genom att uttryckligen ange det önskade skalet.

Till exempel för att köra ett skript som har #!/bin/sh specificerat i Shebang-linjen med bash som du skulle skriva:

bash hello_world

Observera att det inte är bra att åsidosätta skaletolkaren eftersom det kan leda till skriptets oväntade beteende.

Slutsats

Nu bör du ha en god förståelse för vad som är Shebang och hur du använder det i dina Bash-skript.

bash terminal