Portál AbcLinuxu, 10. května 2025 22:42

Dotaz: BASH a source

26.2.2013 15:27 OoO
BASH a source
Přečteno: 260×
Odpovědět | Admin
Ahoj, mám adresář /aaa/bbb, v tomto adresáři mám adresář ccc a soubor go.sh. V adresáři ccc mám soubor inc.sh. Když v souboru /aaa/bbb/go.sh použiju source ccc/inc.sh tak to pořád hlásí, že directory neexistuje, proč když existuje? Jak to načíst bez zadávání absolutní cesty? Dík
/aaa/bbb/ccc
/aaa/bbb/ccc/inc.sh
/aaa/bbb/go.sh
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

26.2.2013 15:39 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: BASH a source
Odpovědět | | Sbalit | Link | Blokovat | Admin
Když v souboru /aaa/bbb/go.sh použiju source ccc/inc.sh tak to pořád hlásí, že directory neexistuje, proč když existuje?
Protože záleží, odkud ten skript pouštíte. Pokud jste v adresáři bbb, tak to fungovat bude, jinak ne.
I am always ready to learn although I do not always like to be taught. (W. Churchill)
26.2.2013 17:21 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: BASH a source
Protože záleží, odkud ten skript pouštíte.

Přesněji: záleží na tom, jaký je v tom okamžiku pracovní adresář. Pokud napíšu

for d in a b c; do
    pushd $d
    source x
    popd
done

bude se pokaždé sourcovat jiný soubor.

26.2.2013 15:44 Michal
Rozbalit Rozbalit vše Re: BASH a source
Odpovědět | | Sbalit | Link | Blokovat | Admin
Skus tam dat nieco taketo:

source ./ccc/inc.sh
26.2.2013 22:33 mkmm
Rozbalit Rozbalit vše Re: BASH a source
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nebo si za behu zjisti aktualni cestu ke go.sh a muzes to volat odkudkoliv:
source ${0%/*}/ccc/inc.sh

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.