Portál AbcLinuxu, 11. května 2025 10:36

Dotaz: pwd

11.5.2011 14:39 kuin
pwd
Přečteno: 149×
Odpovědět | Admin
Už jsem to tady řešil, ale když mám ve scriptu:

path=`pwd`

Tak pokaždé ta proměnná path bude jiná, podle toho, odkud script pouštím, jde mi konkrétně o to, aby proměnná path byla aktuální cesta k tomu scriptu.

Díky
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

11.5.2011 14:57 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: pwd
Odpovědět | | Sbalit | Link | Blokovat | Admin
path=`dirname $0`
V proměnné $0 (0. argument příkazové řádky) je cesta k aktuálně spuštěnému programu.
11.5.2011 15:02 Patrik Uhrak | skóre: 31 | blog: pato
Rozbalit Rozbalit vše Re: pwd
Odpovědět | | Sbalit | Link | Blokovat | Admin

Ak chces zistit, kde je skript ulozeny, tak mozes nasledovne pridat do toho tvojho skriptu:

echo "${BASH_SOURCE}"

alebo je tu moznost pouzit aj:

echo "${0}"

ale tento zapis nefunguje (nie ako by si mohol ocakavat) pri symlinkoch alebo ak je spustany pomocou source.

Obidva zapisy maju svoje opodstatnenie a zalezi na situacii.

11.5.2011 15:26 Patrik Uhrak | skóre: 31 | blog: pato
Rozbalit Rozbalit vše Re: pwd

Samozrejme, nesmiem zabudnut poznamenat,ze premenna BASH_SOURCE je viazana k pouzitiu prave bash-u. Je mozne, ze aj ine shell-y maju ekvivalent k tejto premennej. Takze pokial ide o prenositelnost, tak prave:

path="${0}"

je riesenie. Avsak, ak vyuzijete bash, tak riesenim je skor:

path="${BASH_SOURCE}"

co je ale tiez zbytocne priradenie, kedze v skripte mozte namiesto path sa dotazovat ${BASH_SOURCE} rovnako ako v predchadzajucom pripade ${0} .

11.5.2011 15:51 kuin
Rozbalit Rozbalit vše Re: pwd
dejme tomu ,ze script je ulozeny v /home/user a obsahuje
path=`dirname $0`
echo $path potom nevypíše /home/user...

11.5.2011 15:58 kuin
Rozbalit Rozbalit vše Re: pwd
Zprovoznil jsem to nakonec takhle:
path="$(dirname $(readlink -f $0))"
11.5.2011 16:07 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: pwd
Jo, readlink, to je ono. Jenom jsme mu nemohl přijít na jméno, tak jsem si začal myslet, že neexistuje ;-)
11.5.2011 16:05 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: pwd
Pokud skript nespouštíte s plnou cestou, musel byste $0 zkombinovat s pwd a vyhodnotit správně relativní cestu. Nenapadá mne teď, zda na to existuje nějaký hotový nástroj.

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.