Úvod
V systémech Linux source
je vestavěný příkaz shellu, který čte a spouští obsah souboru v aktuálním shellu. Tyto soubory obvykle obsahují seznam příkazů doručených interpretu TCL ke čtení a spuštění.
Tento kurz vysvětlí, jak příkaz source funguje a kdy jej použít.
Předpoklady
- Systém s distribucí Linuxu (přečtěte si, jak nainstalovat Ubuntu 20.04, jak nainstalovat CentOS 7 nebo jak nainstalovat Arch Linux)
- Účet s právy sudo
- Přístup do okna terminálu/příkazového řádku
Syntaxe příkazu zdroje
zdroj používá následující syntaxi:
source [filename] [arguments]
Kde:
[filename]
:Název nebo cesta k souboru, který má zdrojový příkaz spustit.[arguments]
:Všechny vámi poskytnuté argumenty se při spuštění souboru stanou pozičními parametry.
Místo source
lze použít tečku (tečku). výsledkem je stejný výstup:
. [filename] [arguments]
Příklady zdrojových příkazů Linux
Zde jsou některé ze způsobů, jak můžete použít source
příkaz:
Předat argumenty
Vytvořte textový soubor s názvem example.txt v Domů adresář s následujícím obsahem:
pwd
date
time
Použijte source
příkaz pro předání obsahu tohoto souboru jako argument:
source example.txt
Výstup ukazuje, že source
příkaz se přesouvá řádek po řádku a provádí všechny příkazy uvedené v example.txt .
Pro složitější příklad změňte obsah souboru example.txt komu:
echo "The current directory is:"
pwd
echo "Today's date is:"
date
echo "The time is:"
time
Přesuňte soubor na Home/source_command/example . Se source
příkaz, předejte obsah souboru jako argument pomocí úplné cesty k souboru:
source source_command/example/example.txt
Přečtěte si konfigurační soubor
source
příkaz také umožňuje číst proměnné ze souboru. Začněte vytvořením vzorového konfiguračního souboru example_config.sh v Domů adresář a přidání následujícího obsahu:
VAR1="a"
VAR2="b"
VAR3="c"
Vytvořte bash skript s názvem example_bash.sh a přidejte následující:
#!/usr/bin/env bash
source example_config.sh
echo "VAR1 is $VAR1"
echo "VAR2 is $VAR2"
echo "VAR3 is $VAR3"
source
příkaz umožňuje example_bash.sh pro čtení proměnných VAR1
, VAR2
a VAR3
které jste definovali v example_config.sh .
Spusťte soubor example_bash.sh skript pomocí source
příkaz:
source example_bash.sh
Funkce zdroje
Pokud máte funkce, které používáte v několika různých skriptech, můžete je uložit jako samostatné soubory a použít source
příkaz k odkazování na ně při psaní skriptů.
Začněte například vytvořením funkce check_root.sh který kontroluje, zda uživatel spouštějící skript je uživatel root:
check_root() {
if [[ $EUID -ne 0 ]]; then
echo "You must run this script as root"
exit 1
fi
}
Vytvořte skript s názvem example_script.sh a použijte source
příkaz pro vložení check_root.sh funkce:
#!/usr/bin/env bash
source check_root.sh
check_root
echo "This is the root user"
Spuštění tohoto skriptu jako uživatel bez oprávnění root vytvoří "You must run this script as root"
jako výstup a ukončí skript:
bash example_script.sh
Při spuštění skriptu jako uživatel root se zobrazí "This is the root user"
jako výstup:
sudo bash example_script.sh
Obnovit aktuální prostředí prostředí
Pro tento příklad vytváříme alias příkaz ll
:
alias ll = 'ls -l'
Tento příkaz zobrazí seznam souborů v aktuálním adresáři v rozšířeném formátu:
Tento příkaz však funguje pouze v aktuální relaci shellu. Chcete-li, aby byl trvalý, otevřete bashrc soubor s:
sudo nano ~/.bashrc
Pod #some more ls aliases
přidejte následující:
alias ll = 'ls -l'
Obnovte aktuální prostředí prostředí pomocí source
příkaz:
source ~/.bashrc