|
|
|
|
[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.pldoc.pisz.plpdf.pisz.plminister.pev.pl
|
|
|
|