Portál AbcLinuxu, 14. května 2025 16:23

Dotaz: bash - seznam souborů

1.1.2006 19:42 Martin Tůma | skóre: 39 | blog: RTFM | Praha
bash - seznam souborů
Přečteno: 380×
Odpovědět | Admin

Jak nejjednoduššeji v shellovém scriptu vytvořit seznam souborů tak, aby se jím dalo po jednom souboru procházet? Jména souborů mohou obsahovat mezery. Lze toto vůbec v shellu (bashi) nějak implementovat?

Každý má právo na můj názor!
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

1.1.2006 19:46 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
Rozbalit Rozbalit vše Re: bash - seznam souborů
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nerozumím, co znamená "po jednom souboru procházet", ale jestli chceš načíst soubory a po jednom je zpracovávat ve skriptu, tak zkus třeba:

ls | while read promena; do echo "${promena}"; done
-- Nezdar není hanbou, hanbou je strach z pokusu.
1.1.2006 20:03 Martin Tůma | skóre: 39 | blog: RTFM | Praha
Rozbalit Rozbalit vše Re: bash - seznam souborů

Upřesním to - parametrem scriptu je (kromě jiného) seznam souborů. Já si potřebuju tyhle soubory nějak zapamatovat a později je v tom scriptu po jednom projít

Každý má právo na můj názor!
1.1.2006 20:05 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
Rozbalit Rozbalit vše Re: bash - seznam souborů
Tak to bych se asi podíval na nějaký cyklus (třeba while) a funkci shift.
-- Nezdar není hanbou, hanbou je strach z pokusu.
1.1.2006 20:42 #Tom
Rozbalit Rozbalit vše Toto se může hodit
Doporučuju ještě porovnat $* a $@.
cat > test << EOF
#!/bin/bash
for i in "\$*"; do echo -n \'\$i\'\ ; done
echo
for i in "\$@"; do echo -n \'\$i\'\ ; done
echo
EOF
chmod u+x test
./test "a b" "c" "d"
1.1.2006 19:49 #Tom
Rozbalit Rozbalit vše Snad je to ono
Odpovědět | | Sbalit | Link | Blokovat | Admin
Toto je malý příklad:
for i in *; do
  echo -n \'$i\' je\ ;
  if [ -d "$i" ]; then
    echo adresář
  else
   echo soubor
  fi
done

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.