Android

Bash broncommando

Source Shell Script vs Executing Shell Script - The Real Difference

Source Shell Script vs Executing Shell Script - The Real Difference

Inhoudsopgave:

Anonim

De bronopdracht leest en voert opdrachten uit het bestand dat is opgegeven als argument in de huidige shell-omgeving. Het is handig om functies, variabelen en configuratiebestanden in shellscripts te laden.

source is een shell ingebouwd in Bash en andere populaire shells die worden gebruikt in Linux- en UNIX-besturingssystemen. Het gedrag kan enigszins verschillen van shell tot shell.

Bronopdrachtsyntaxis

De syntaxis voor de bronopdracht is als volgt:

source FILENAME. FILENAME

  • source en . (een punt) zijn dezelfde opdracht. Als de FILENAME geen volledig pad naar een bestand is, zoekt de opdracht naar het bestand in de mappen die zijn opgegeven in de omgevingsvariabele $PATH . Als het bestand niet wordt gevonden in $PATH , zoekt het commando naar het bestand in de huidige map. Als er ARGUMENTS worden gegeven, worden dit positionele parameters voor de FILENAME . Als de FILENAME bestaat, is de FILENAME exitcode 0 , anders als het bestand niet wordt gevonden, wordt 1 geretourneerd.

Bronopdrachtvoorbeelden

In deze sectie zullen we enkele basisvoorbeelden bekijken van het gebruik van de bronopdracht.

Inkoopfuncties

In dit voorbeeld maken we een bestand met een bash-functie die controleert of de gebruiker die het script uitvoert root is en zo niet, wordt er een bericht weergegeven en wordt het script afgesloten.

functions.sh

check_root () { if]; then echo "This script must be run as root" exit 1 fi }

Nu, in elk van uw scripts die alleen door de rootgebruiker moeten worden uitgevoerd, bron het functions.sh bestand en roep de functie aan:

#!/usr/bin/env bash source functions.sh check_root echo "I am root"

Het voordeel van deze aanpak is dat uw scripts kleiner en beter leesbaar zijn, u kunt hetzelfde functiebestand wanneer nodig opnieuw gebruiken en in het geval dat u een functie moet wijzigen, bewerkt u slechts één bestand.

Bash-configuratiebestand

Met de bronopdracht kunt u ook variabelen uit een bestand lezen. De variabelen moeten worden ingesteld met de Bash-syntaxis, VARIABLE=VALUE .

Laten we een testconfiguratiebestand maken:

config.sh

VAR1="foo" VAR2="bar"

Gebruik in uw bash-script de bronopdracht om het configuratiebestand te lezen:

#!/usr/bin/env bash source config.sh echo "VAR1 is $VAR1" echo "VAR2 is $VAR2"

VAR1 is foo VAR2 is bar

Conclusie

In deze handleiding hebt u geleerd hoe u de opdracht source builtin in uw shellscripts kunt gebruiken.

bash-terminal