[ nixa @ 10.11.2005. 15:34 ] @
Code:

#!/bin/bash

/bin/ls /home/nixa/ | while read line
do
        i=0
        cut -d: -f2 /home/nixa/popis | grep "$line" | while read postoji
        do
                if [ "'$postoji'" == "'$line'" ]
                then
                        i=1
                fi
        done
        if [ $i -eq 0 ]
        then
                echo $(/bin/date +%d.%m.%Y):$line >> /home/nixa/popis
        fi
done


zna li netko mozda zasto ovo nece raditi ... problem je u tome sto skripta, nakon sto ispadne iz druge while read petlje vrati varijabli i vrijednost 0 ...
[ milan82 @ 10.11.2005. 17:25 ] @
Pretpostavljam da je greska u ispitivanju uvjeta tj.stringova : if [ "'$postoji'" == "'$line'" ], pokusaj sa:
"$postoji == "$line"
[ random @ 28.11.2005. 07:49 ] @
Da, ti jednostruki navodnici su definitivno višak. Takođe ako probaš sa grep ^${line}$, možda uštediš sebi celu tu if petljanciju.
[ nixa @ 28.11.2005. 19:11 ] @
Code:
/bin/ls /home/nixa/zaponijet/ | while read line
do
        /usr/bin/cut -d: -f2 /home/nixa/zaponijet/popis | /bin/grep -q "^$line$"
        if [ $? != 0 ]
        then
                /bin/echo $(/bin/date +%d.%m.%Y):$line >> /home/nixa/zaponijet/popis
        fi
done


ovako sam napravio, ali izgleda da sada pravi probleme, odnosno doda svaki puta u popis file koji u imenu ima znak "[" ili "]"
[ Gojko Vujovic @ 17.02.2006. 13:51 ] @
Daj input fajl i šta ti treba u output-u skripte pa da napišemo mi to od nule. Možda ima boljih alata za ovo od bash-a i te cut-grep kombinacije.