Re: shell skripta ne radi

Poslao gigolo on 23.09.2008 10:44:52
#!/bin/bash
cd test
valid="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-_."
find . | while read f; do
j=1
        d=$(echo ${#f})
        while [ $j -lt $d ]; do
               c=$(echo ${f:j:1})
                k=`echo $valid | grep -i $c`
                if [ "$k" = "" ]; then
                        c="_"
                fi
                r=$r$c
                let j=j+1
      done
  r=$(echo ${r:1:d-2})
#if ["$f" -ne "$r"]; then
 mv "$f" "$r" 
#fi
r=""
done


Ovo radi kako želim. Još bih molio pomoć. Niz valid se vjerojatno može napisati jednostavnije koristeći [A-Z] i sl, ali mi ne uspjeva.
Kod mv sam pokušao dodati da se ne izvršava ali mi if ne radi, pa je u komentaru.
I još najblentavija izjava, ja ovu skriptu ne razumjem. Što je find . | while read f; do
To sam kopirao iz jedne skripte koju sam našao na netu. Ostalo sam guglao za sintaksu naredbi. Unaprijed hvala na pomoći!

Ova poruka je od: http://www.linux.hr/newbb/viewtopic.php?forum=8&topic_id=1889&post_id=11852