Archiv štítku: source

Bash – načtení externího zdroje

Zkoušeli jste někdy spouštět skript z jiného umístění než kde se skutečně nalézá? Jestli ano, tak jste si určitě všimli že pokud načítáte konfigurační soubor, musíte používat absolutní cestu.

Jenže co když skript chcete dát k dispozici někomu jinému, který se třeba v bashi vůbec nevyzná a musel by znovu nastavovat cesty.

Já jsem to vyřešil takto:

$(cd $(dirname $0) && pwd)

No a rovnou si to ukážeme na příkladu:

Soubor example.sh

#!/bin/bash
CONFIGFILE="$(cd $(dirname $0) && pwd)/config.ini"
if [ -f "$CONFIGFILE" ]
then
    # Nacteni configu
    source $CONFIGFILE
else
    echo "ERROR: Nemuzu nalezt "$CONFIGFILE""; exit
fi

Soubor config.ini

echo "Ahoj, ja jsem config.ini"

Tento příklad se vám bude hodit pokud skripty spouštíte třeba přes cron.