
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]
source
a.
(tečka) jsou stejný příkaz.- Pokud
FILENAME
není úplná cesta k souboru, příkaz vyhledá soubor v adresářích zadaných v$PATH
environmentální proměnná. Pokud soubor není nalezen v$PATH
, příkaz vyhledá soubor v aktuálním adresáři. - Pokud existují
ARGUMENTS
jsou uvedeny, stanou se pozičními parametry proFILENAME
. - Pokud
FILENAME
existuje,source
kó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ář.