bash premene

Sekcia: Programovanie 26.01.2009 | 15:53
trolo   Návštevník
ahoj, opat :)

mam nasledujuci problemik s ktorym potrebujem poradit,

mam skript v bashi ktory robi to, ze mi na zaklade niecoho vypise nejake cisla,

for file in /home/trolo/*; do
if [ -f "$file" ]; then
cat $file | strings | grep "Od:" | sed 's/Od: //';
fi
done

cize ked ho spustim vypise mi asi toto:
2564
64554
4554
665
65987
546548
656
65656
potreboval by som vsak do toho skriptu pripisat aby to spustalo dalsi samostatny subor(skript) a ako parameter bude uvedene to cislo;
cize nejako takto

for file in /home/trolo/*; do
if [ -f "$file" ]; then
spustisubor.sh cat $file | strings | grep "Od:" | sed 's/Od: //';
fi
done

cize akoby som to pustil z terminalu ze:
spustisubor.sh 2564
spustisubor.sh 64554
atd
atd

ale ked tam dam len ze spustisubor.sh cat $file | strings | grep "Od:" | sed 's/Od: //';
tak mi to samozrejme nefunguje :(
    • Re: bash premene 26.01.2009 | 16:12
      Avatar Zefram Cochrane MS Windows Vista Ultimate 64bi  Používateľ
      opacne lomitka `` substituuju prikaz do premennej, napr:

      RIADKOV=`wc -l /etc/fstab`

      cize

      ./spustisubor `cat $file | strings | grep "Od:" | sed 's/Od: //';`
      • Re: bash premene 26.01.2009 | 16:15
        trolo   Návštevník
        no ty si hlavicka, diky moc zase si mi poradil, este raz a mas u mna velke pivo :)

        dakujem
    • Re: bash premene 26.01.2009 | 16:14
      Avatar Zefram Cochrane MS Windows Vista Ultimate 64bi  Používateľ
      ale v tvojom pripade nie lebo v jednom subore moze byt viac riadkov, tazke asi nieco ako

      for file in /home/trolo/*; do
      if [ -f "$file" ]; then
      spustisubor.sh cat $file | strings | grep "Od:" | sed 's/Od: //';
      fi
      done | (while read cislo; do ./subor $cislo; done)