Portál AbcLinuxu, 17. července 2025 18:49


Dotaz: Overeni cesty v bash-shell

28.1.2014 11:46 BASH
Overeni cesty v bash-shell
Přečteno: 245×
Odpovědět | Admin
Ahoj, jde nejak v bash-shell overit zda promena obsahuje urcitou cestu k souboru? Diky za pripadnou radu jak na to.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

28.1.2014 11:51 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Overeni cesty v bash-shell
Odpovědět | | Sbalit | Link | Blokovat | Admin

Záleží na tom, co to znamená. Pokud vás zajímá, zda hodnota proměnné je cesta k nějakému existujícímu obyčejnému souboru, tak

  test -f $var

Pokud cestu k souboru libovolného typu, tak

  test -e $var

(oboje u symbolických linků testuje cíl, ne link samotný). Pokud potřebujete něco jiného, musíte napsat co.

28.1.2014 12:04 BASH
Rozbalit Rozbalit vše Re: Overeni cesty v bash-shell
Dekuji, zeptal jsem se spatne, tak jeste jednou. Potrebuji zjistit tohle, mam VAR="/tmp/local/post/soubor" a potrebuji testovat, zda VAR obsahuje "/tmp/local/post/" bez toho ciloveho souboru. Dekuji
28.1.2014 12:51 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: Overeni cesty v bash-shell
Takhle:
VAR="/tmp/local/post/souborx" 

if [ "$(dirname $VAR)" == "/tmp/local/post" ]; 
then echo YES;
else echo NO; 
fi;

VAR="/tmp/local/post-XXX/soubor" 

if [ "$(dirname $VAR)" == "/tmp/local/post" ]; 
then echo YES;
else echo NO; 
fi;
-- OldFrog
28.1.2014 12:54 potato
Rozbalit Rozbalit vše Re: Overeni cesty v bash-shell
Prefix lze testovat například
x=/tmp/local/post/
if test "${VAR:0:${#x}}" = "$x"; ...
nebo
x=/tmp/local/post/
if test "${VAR#$x}" != "$VAR"; ...
nebo pomocí case, případně jinak...

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.