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.