source příkaz čte a provádí příkazy ze souboru zadaného jako jeho argument v aktuálním prostředí shellu. Je užitečné načíst funkce, proměnné a konfigurační soubory do skriptů shellu.
source je shell vestavěný v Bash a dalších populárních shellech používaných v operačních systémech Linux a UNIX. Jeho chování se může mírně lišit od shellu k shellu.
Syntaxe příkazu zdroje #
Syntaxe pro source příkaz je následující:
source FILENAME [ARGUMENTS]
. FILENAME [ARGUMENTS]
sourcea.(tečka) jsou stejný příkaz.- Pokud
FILENAMEnení úplná cesta k souboru, příkaz vyhledá soubor v adresářích zadaných v$PATHenvironmentální proměnná. Pokud soubor není nalezen v$PATH, příkaz vyhledá soubor v aktuálním adresáři. - Pokud existují
ARGUMENTSjsou uvedeny, stanou se pozičními parametry proFILENAME. - Pokud
FILENAMEexistuje,sourcekód ukončení příkazu je0, v opačném případě, pokud soubor není nalezen, vrátí1.
Příklady zdrojových příkazů #
V této části se podíváme na několik základních příkladů, jak používat source příkaz.
Funkce získávání zdrojů #
Pokud máte skripty shellu používající stejné funkce, můžete je extrahovat do samostatného souboru a poté tento soubor získat ve svých skriptech.
V tomto příkladu vytvoříme soubor obsahující funkci bash, která kontroluje, zda uživatel spouštějící skript je root, a pokud ne, zobrazí zprávu a skript ukončí.
function.shcheck_root () {
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root"
exit 1
fi
}
Nyní v každém skriptu, který musí spouštět pouze uživatel root, jednoduše zadejte zdroj functions.sh soubor a zavolejte funkci:
#!/usr/bin/env bash
source functions.sh
check_root
echo "I am root"
Pokud výše uvedený skript spustíte jako uživatel bez oprávnění root, vypíše „Tento skript musí být spuštěn jako uživatel root“ a skončí.
Výhodou tohoto přístupu je, že vaše skripty budou menší a čitelnější, můžete kdykoli znovu použít stejný soubor funkcí a v případě, že potřebujete upravit funkci, upravíte pouze jeden soubor.
Konfigurační soubor Bash #
Pomocí source můžete také číst proměnné ze souboru. Proměnné musí být nastaveny pomocí syntaxe Bash, VARIABLE=VALUE .
Vytvoříme testovací konfigurační soubor:
config.shVAR1="foo"
VAR2="bar"
Ve skriptu bash použijte source příkaz ke čtení konfiguračního souboru:
#!/usr/bin/env bash
source config.sh
echo "VAR1 is $VAR1"
echo "VAR2 is $VAR2"
Pokud skript spustíte, výstup bude vypadat takto:
VAR1 is foo
VAR2 is bar
Závěr č.
V této příručce jste se naučili používat source vestavěný příkaz ve vašich skriptech shellu.
Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.