ďťż
 
 
   [bash] jak podmienić
 
 

Tematy

 
    
 

 

 

 

[bash] jak podmienić





jang - 25-04-2007 15:24
Witam

#!/bin/bash

linki="/var/cache/apt/archives /repo/apt-mirror/mirror /media/iso1/pool /repo/reprepro/pool"

nazwy="archives apt-mirror iso1 reprepro"

for x in $linki; do
    echo $x | tr / _
    echo $x > /tmp/deb`echo "$x" | tr / _`
done Powyższa pętla for zapisze mi np.:
wartość $x czyli /var/cache/apt/archives do pliku deb_var_cache_apt_archives
a ja chciałbym aby wartość $x została zapisana do pliku /tmp/deb-archives
czyli jeśli $x = $linki(1) to ma zapisać do /tmp/deb-$nazwy(1)

Pozdrawiam i z góry dziękuję za wszelkie podpowiedzi :)



ilr - 25-04-2007 19:54
Może byc np. tak:
#!/bin/bash

linki="/var/cache/apt/archives /repo/apt-mirror/mirror /media/iso1/pool /repo/reprepro/pool"

nazwy=(archives apt-mirror iso1 reprepro)
count=0

for x in $linki; do
    echo $x >/tmp/deb-${nazwy[count]}
    count=`expr $count + 1`
done Zresztą linki tez możesz przerobić na łańcuch i zmienić trochę ten skrypt.



jang - 25-04-2007 21:24
ilr bardzo dziękuję za pomoc.
Widzę teraz że zadałem bardzo głupie pytanie a dlaczego ? ano dlatego że nie wiedziałem że istnieje coś takiego jak expr. Kombinowałem jak koń pod górę z i++ i=i+1 co jak wiesz w bash'u nie działa.


Zresztą linki tez możesz przerobić na łańcuch i zmienić trochę ten skrypt. Rozważę Twoją propozycję nie mniej ten przykład jest taki a nie inny bo wymyślony na potrzeby tego pytania :-)

Jeszcze raz dziękuję i pozdrawiam.



ilr - 25-04-2007 21:58
Zamiast
count=`expr $count + 1` w BASHu możesz użyć:
let "count=$count + 1" lub prościej:
let "count += 1"
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • minister.pev.pl

  •  

     


     

     
    Copyright 2003. MĂłj serwis