shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Exportar resultado de função


From: Alexandre Mulatinho
Subject: Re: [shell-script] Exportar resultado de função
Date: Sun, 22 Aug 2010 11:17:15 -0300
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.11) Gecko/20100711 Thunderbird/3.0.6

OPz..

Ignore essas linhas no primeiro script:

TOTAL=`cat conteudo.txt | wc -l`
LINE=`sed -n "/$1/p" conteudo.txt`

Muita cerveja no domingo dá nisso.. ;)

abraços,
Mulatinho.

On 08/22/2010 11:15 AM, Alexandre Mulatinho wrote:
> Bom dia,
>
> A melhor forma para fazer isso na minha opinião é guardando em uma
> variável a linha de argumentos e processando ela após isso.
>
> No caso:
>
> Esqueça essa função "GetService", irá ficar redundante;
>
> --script--
> ARQUIVO=conteudo.txt
> TOTAL=`cat conteudo.txt | wc -l`
>
> while read LINE
> do
>     LINE=`sed -n "/$1/p" conteudo.txt`
>     PORTA=`echo $LINE | cut -d';' -f2`
>     PROTO=`echo $LINE | cut -d';' -f3`
>
>     iptables -A FORWARD -p $PROTO --dport $PORTA -i $IF_IN -j DROP
> done << $ARQUIVO
> --script--
>
> Ou se realmente quiser passar um argumento para função:
>
> --script-
> function GetService()
> {
>     LINE=`sed -n "/$1/p" conteudo.txt`
>     PORTA=`echo $LINE | cut -d';' -f2`
>     PROTO=`echo $LINE | cut -d';' -f3`
> }
>
> GetService "FTP"
> iptables -A FORWARD -p $PROTO --dport $PORTA -i $IF_IN -j DROP
> --script--
>
> Mas aí voce vai ter que fazer um por um :P
>
> Mete a mão na massa!
>
> abraços,
> Mulatinho.
>
> On 08/21/2010 11:47 AM, Cristiano wrote:
>   
>> Senhores, bom dia.
>>
>> Estou otimizando um script de firewall e tenho um arquivo que descreve 
>> serviços e portas.
>>
>> Seu conteúdo é +- assim:
>>
>> BACULA_DIR;9101;tcp udp
>> BACULA_FD;9102;tcp udp
>> BACULA_SD;9103;tcp udp
>> DNS;53;tcp udp
>> FIREBIRD;3050;tcp
>> FTP;20:21;tcp
>> GMAIL_POP;995;tcp
>>
>> A ideia é criar uma função que receba como parâmetro o nome do serviço 
>> (campo 1) e que retorne a porta (campo 2) e os protocolos (campo 3), 
>> atribuídos respectivamente à variáveis PORTA e PROTOS.
>>
>> Porém, a atribuição da variável feita dentro da função não é exportada para 
>> o shell que a chamou.
>>
>> Como eu faço para usar estas variáveis, atribuídas dentro da função, fora 
>> delas. Exemplo:
>>
>> function GetService () {
>> PORTA=$(grep '^'${1}';' /etc/firewall/services.conf | cut -f 2 -d ';')
>> PROTOS=$(grep '^'${1}';' /etc/firewall/services.conf | cut -f 3 -d ';')
>> }
>>
>> # (...)
>>
>> GetService "DNS"
>>
>> for PROTO in $(echo $PROTOS) ; do 
>>     iptables -A FORWARD -p $PROTO --dport $PORTA -i $IF_IN -j DROP
>> done
>>
>>
>> Sei que a dúvida conceitual é bem básica; até meio besta, mas me deu um 
>> branco.
>>
>>
>>
>>   
>>     
>
>   


-- 
Alexandre Mulatinho
Analista de Suporte/Sistemas
Fone: +55 81 92781715



reply via email to

[Prev in Thread] Current Thread [Next in Thread]