On Monday 12 December 2005 11:54, Dizzy wrote:
> On Monday 12 December 2005 11:21, Mugurel Sumanariu wrote:
> > On Mon, December 12, 2005 10:52 am, Alex wrote:
> > > Am un script care la un moment dat face ceva de genul:
> > >
> > > FILE="allowed.txt"
> > > while read IP;
> > >  do
> > >  $IPTABLES -A ... -s $IP --dport abcd -j ACCEPT
> > >  done < $FILE
> > >
> > > Ceea ce vreau eu acum este ca in allowed.txt sa pot
> > > introduce si comentarii,
> > > in afara de liniile legitime care contin adresele de IP.
> > > Cum instruiesc bash-ul sa ignore liniile care incep cu #
> > > in fisierul allowed.txt cind parcurg ciclul while de mai
> > > sus?
> > >
> > > Alex
> >
> > #!/bin/sh
> > ipuri=`/bin/cat /path/allowed.txt|grep -v "#"`
> > for i in $ipuri; do
> >   $IPTABLES -A... -s $i -j ACCEPT
> > done
> >
> > comentariile pui cu # in fata...
>
> Problema e ca atunci cand ai si comentarii la mijloc comanda
> data de tine va filtra si acele linii (omul a precizat ca
> vrea sa elimine liniile cu comentarii in fata nu ca '#' daca
> e prezent e prezent DOAR in fata).
>
> Deci grep -v '^#' instead.

Da, mersi, m-am oprit asupra variantei cu for. Sincer sa fiu, as fi dorit mai 
mult varianta cu while (chestie de modificare scripturi pe mai multe 
echipamente care au fost scrise by default cu while), dar nu am reusit sa pun 
conditia de filtrare sugerata de Mihai nici in ruptul capului:

[EMAIL PROTECTED] ~]$ cat allowed.txt
# comentariu
1.2.3.4
8.7.6.5
# alt comment
4.3.2.1
5.4.5.4

[EMAIL PROTECTED] ~]$ cat aaa.sh
#!/bin/bash
FILE="allowed.txt"

for IP in `/bin/egrep -v "^#" $FILE`;
    do
    # fac ceva cu $IP
    echo $IP
    done

Alx

_______________________________________________
RLUG mailing list
RLUG@lists.lug.ro
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui