Bem... já que falei do sed... sed -e "s/\(.*\)=\(.*\)/-e \'\s\/$\1\/\2\/\g\'/g" < vars | xargs sed - prog
Supondo que "vars" seja seu arquivo de variáveis e "prog" seja o programa. Em 25 de fevereiro de 2010 16:39, Cristiano <[email protected]> escreveu: > > > Senhores, em meus scripts mais complexo, costumo declarar as variáveis em > um arquivo separado e chamá-las através do source no script principal. > > O problema é que às vezes fica dífícil dar manutenção no script, > principalmente quando não lembro o conteúdo de todas as variáveis. > > Depurar um script de firewall nestas condições, às vezes exiger abrir o > arquivo das variáveis várias vezes para entender o que cada comando faz. Um > exemplo: > > while read IP_EXT IP_INT PORTAORIG PORTADEST > do > iptables -t nat -A PREROUTING -p tcp -i $IF_NET -d $IP_EXT --dport > $PORTAORIG -j DNAT --to-destination $IP_INT:$PORTADEST > iptables -t nat -A POSTROUTING -p tcp -o $IF_NET -s $IP_INT --sport > $PORTAORIG -j SNAT --to-source $IP_EXT:$PORTADEST > iptables -A FORWARD -p tcp -d $IP_EXT --dport $PORTAORIG -j ACCEPT > iptables -A FORWARD -p tcp -d $IP_INT --dport $PORTADEST -j ACCEPT > > iptables -t nat -A PREROUTING -p udp -i $IF_NET -d $IP_EXT --dport > $PORTAORIG -j DNAT --to-destination $IP_INT:$PORTADEST > iptables -t nat -A POSTROUTING -p udp -o $IF_NET -s $IP_INT --sport > $PORTAORIG -j SNAT --to-source $IP_EXT:$PORTADEST > iptables -A FORWARD -p udp -d $IP_EXT --dport $PORTAORIG -j ACCEPT > iptables -A FORWARD -p udp -d $IP_INT --dport $PORTADEST -j ACCEPT > done < <(echo "$IP_IMAP $SRV_IMAP $IMAP_EXT $IMAP > $IP_GOGLOBAL $SRV_GOGLOBAL $GOGLOBAL_EXT $GOGLOBAL > $IP_HG_MGA $HG_MGA $HG_EXT $HG > $IP_HIPATH_MGA $HIPATH_MGA $HIPATH_EXT $HIPATH") > > Lembrar quais são os IPs e portas atribuídos a cada variável acaba virando > um parto. E, embora o while seja uma mão na roda para evitar a repetição de > texto, entender o que estas intruções fazem não é a coisa mais intutiva do > mundo. > > E gostaria de saber se existe algum parâmetro no bash, ou algum aplicativo, > que leia o meu script, faça as expansões que o bash faria, e me retorne > apenas o resultado. Algo tipo o bash -x, mas que me retorne apenas o > comandos que seriam em cada laço (com suas variáveis devidamente expandidas) > e não a o laço em si, como o bash -x faz. > > Consegui explicar? > > > [As partes desta mensagem que não continham texto foram removidas] ------------------------------------ --------------------------------------------------------------------- Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. --------------------------------------------------------------------- Sair da lista: [email protected] --------------------------------------------------------------------- Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net --------------------------------------------------------------------- Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [email protected] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
