Portál AbcLinuxu, 20. července 2025 20:41


Dotaz: syntax IF

29.1.2009 11:19 eth4rendil | skóre: 13
syntax IF
Přečteno: 318×
Odpovědět | Admin

Dobrý den,

 

man taký problém s týmto scriptom. Chcem zistit ci sa v adresari nahadzajú súbory s príponou dat. Toto co je tu dole funguje, ale akonahle je tam viac ako 1 súbor s príponou dat tak to zblbne. Viete poradit aby to fungovalo aj ked je tam viac súborov?

 

# overenie existencie suborov s priponou dat
if [ -f $adresar*.DAT ]
then
echo existuju
else
echo neexistuju
exit 0
fi
 

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

Odpovědi

29.1.2009 11:21 Michal Marek
Rozbalit Rozbalit vše Re: syntax IF
Odpovědět | | Sbalit | Link | Blokovat | Admin

Zkus

if ls *.dat; then ...
29.1.2009 11:31 Michal Marek
Rozbalit Rozbalit vše Re: syntax IF
if ls *.dat >/dev/null 2>&1; then ...
29.1.2009 11:51 eth4rendil | skóre: 13
Rozbalit Rozbalit vše Re: syntax IF

dakujem pekne

funguje mi aj to prve

aky je rodziel medzi prvym a druhym?

29.1.2009 12:46 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: syntax IF
... že to nevypisuje ty soubory, nebo hlášku "no such file or directory" na obrazovku.
In Ada the typical infinite loop would normally be terminated by detonation.
29.1.2009 12:58 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: syntax IF
ls znamena spustenie noveho procesu. Obvykle to nevadi, ale ak je to v cykle, kde sa to vola tisicekrat, tak to dost poznat. Podobny problem som riesil pred par mesiacmi a dosiel som k jedinemu rozumnemu rieseniu a vyzaduje to bash:
files=( *.dat )
if [[ -z "$files" ]]; then
   echo existuju
else
   ...
fi
premenna files sa naplni expandovanym polom. Preco path expansion funguje v poli, ale pre beznu premennu nie, mi nie je celkom jasne.
If you hold a Unix shell up to your ear, you can you hear the C.
29.1.2009 13:25 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: syntax IF
Pokud Vám vadí spouštění externích procesů v bashi, tak na bash zapomeňte. Přesuňte se k Perlu nebo v případě extrémních požadavků na výkonnost "*.dat" k Céčku a assembleru.
In Ada the typical infinite loop would normally be terminated by detonation.

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.