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

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

Re: out of string space


From: Evaldo
Subject: Re: out of string space
Date: Wed, 29 Jan 2014 23:03:06 -0000
User-agent: eGroups-EW/0.82

Olá Julio,
Fico grato com suas valiosas dicas. Meu objetivo inicial já foi alcançado de 
encontrar um norte que me permita seguir enfrente com maior qualidade. Irei 
reescrever o código utilizando suas dicas e acredito que irá melhorar e muito. 
Muito obrigado e assim que concluir postarei o resultado.
Abraço.

--- Em address@hidden, "Julio C. Neves" <julio.neves@...> escreveu
>
> Evaldo,
> acho que o cara que analisar o teu código, sem está sem comentário nem
> nada, deveria receber uma boa grana de consultoria e como sei que vc não
> vai pagar, tb não analisarei o seu código... ;)
> 
> No entanto, de cara já descobri como dar um bela encolhida e tb já achei um
> erro que se repete por n linhas. Troque:
> 
> sed -i "s/^\;#12//;s/IP12/$IP/"
> /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf
> 
> Como o ponto e vírgula é representativo para o sed pois equivale a um
> <ENTER> (separa 2  cmds), ele deve ser protegido com uma contrabarra e foi
> por isso que fiz s/^\;#12. Como eu disse, pode haver mais de um cmd dentro
> do mesmo sed, desde que separados por um ponto e vírgula, por isso coloquei
> 2 cmds substitute (s) dentro do mesmo sed, já que o arquivo era o mesmo.
> 
> Aconselho tb trocar esse monte de if farjuto por um único case. Além de
> mais elegante é mais eficiente.
> 
> Como não perdi mais de 1 minuto e achei isso tudo, é provável que se olhar
> fixamente por uns 10 minutos, o script fique com umas 5 linhas. ;)
> 
> Ahh, só mais uma coisa:
> 
> echo -n "Nome: "
> read nom
> 
> No bash, é melhor fazer:
> 
> read -p "Nome: " nom
> 
> E no ksh, pode-se fazer o mesmo com:
> 
> read "Nome: "?nom
> 
> 
> 
> Abcs,
> Julio
> *@juliobash*
> 
> *Próximos cursos de Shell *
> 
> *Cidade*
> 
> *Local*
> 
> *Período*
> 
> São Paulo
> 
> 4Linux <http://www.4linux.com.br/>
> 
> 03-07/02
> 
> Curitiba
> 
> SoftSell <http://www.softsell.com.br/>
> 
> 17-21/02
> 
> Rio de Janeiro
> 
> EDX <http://edx.srv.br/>
> 
> 10-14/03
>  Dou treinamento de shell em qualquer cidade.
> Para detalhes, entre em contato por email ou
> echo 436233889341364416673541503686485725801923229706P | dc
> 
> 
> 
> Em 29 de janeiro de 2014 17:57, Evaldo
> <evaldodeoliveirasrs@...>escreveu:
> 
> >
> >
> > Ok, pessoal. Vou tentar descrever melhor.
> > Hoje o arquivo de meu script esta com 46K e o erro ocorre quando habilito
> > este trecho de código. (Ficou grande, mas se puderem me dar um norte fico
> > grato).
> >
> > '2')
> > clear;
> > echo -n "Informe o codigo do chip da operadora a ser instalado no NeoGate
> > Slave 1: ";
> > read CHIP_S1_1;
> > echo -n "Informe o endereco IP do Neogate Slave 1: ";
> > read IP;
> > if [ "$CHIP_S1_1" -eq "12" ]
> > then
> > sed -i "s/^;#12//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP12/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > elif [ "$CHIP_S1_1" -eq "15" ]
> > then
> > sed -i "s/^;#15//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP15/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > elif [ "$CHIP_S1_1" -eq "21" ]
> > then
> > sed -i "s/^;#21//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP21/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > elif [ "$CHIP_S1_1" -eq "31" ]
> > then
> > sed -i "s/^;#31//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP31/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > elif [ "$CHIP_S1_1" -eq "41" ]
> > then
> > sed -i "s/^;#41//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP41/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > elif [ "$CHIP_S1_1" -eq "43" ]
> > then
> > sed -i "s/^;#43//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP43/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > elif [ "$CHIP_S1_1" -eq "51" ]
> > then
> > sed -i "s/^;#51//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP51/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > elif [ "$CHIP_S1_1" -eq "61" ]
> > then
> > sed -i "s/^;#61//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP61/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > fi
> > ;;
> > *)
> > ;;
> > esac
> >
> > clear;
> > echo "=> Os chips das operadoras a serem instaladas no NeoGate Slave 2 sao
> > de operadoras diferentes? ";
> > echo '=> Caso SIM digite 1.';
> > echo '=> Caso NAO digite 2.';
> > echo -n "Sua opcao: ";
> > read OPS2;
> > case $OPS2 in
> > '1')
> > clear;
> > echo -n "Informe o codigo do chip da operadora a ser instalado na posicao
> > 1 do NeoGate Slave 2: ";
> > read CHIP_S2_1;
> > echo -n "Informe o codigo do chip da operadora a ser instalado na posicao
> > 2 do NeoGate Slave 2: ";
> > read CHIP_S2_2;
> > echo -n "Informe o endereco IP do Neogate Slave 1: ";
> > read IP;
> > if [ "$CHIP_S2_1" -eq "12" ]
> > then
> > sed -i "s/^;#12//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP12/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > elif [ "$CHIP_S2_1" -eq "15" ]
> > then
> > sed -i "s/^;#15//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP15/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > elif [ "$CHIP_S2_1" -eq "21" ]
> > then
> > sed -i "s/^;#21//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP21/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > elif [ "$CHIP_S2_1" -eq "31" ]
> > then
> > sed -i "s/^;#31//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP31/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > elif [ "$CHIP_S2_1" -eq "41" ]
> > then
> > sed -i "s/^;#41//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP41/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > elif [ "$CHIP_S2_1" -eq "43" ]
> > then
> > sed -i "s/^;#43//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP43/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > elif [ "$CHIP_S2_1" -eq "51" ]
> > then
> > sed -i "s/^;#51//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP51/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > elif [ "$CHIP_S2_1" -eq "61" ]
> > then
> > sed -i "s/^;#61//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP61/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > fi
> > if [ "$CHIP_S2_2" -eq "12" ]
> > then
> > sed -i "s/^;#12//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP12/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > elif [ "$CHIP_S2_2" -eq "15" ]
> > then
> > sed -i "s/^;#15//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP15/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > elif [ "$CHIP_S2_2" -eq "21" ]
> > then
> > sed -i "s/^;#21//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP21/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > elif [ "$CHIP_S2_2" -eq "31" ]
> > then
> > sed -i "s/^;#31//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP31/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > elif [ "$CHIP_S2_2" -eq "41" ]
> > then
> > sed -i "s/^;#41//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP41/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > elif [ "$CHIP_S2_2" -eq "43" ]
> > then
> > sed -i "s/^;#43//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP43/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > elif [ "$CHIP_S2_2" -eq "51" ]
> > then
> > sed -i "s/^;#51//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP51/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > elif [ "$CHIP_S2_2" -eq "61" ]
> > then
> > sed -i "s/^;#61//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP61/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > fi
> > echo "Alteracao concluida com sucesso o equipamento ira reiniciar.
> > Pressione a tecla ENTER para encerrar!";
> > read -n1 -p;
> > # reboot;
> > ;;
> > '2')
> > clear;
> > echo -n "Informe o codigo do chip da operadora a ser instalado no NeoGate
> > Slave 2: ";
> > read CHIP_S2_1;
> > echo -n "Informe o endereco IP do Neogate Slave 1: ";
> > read IP;
> > if [ "$CHIP_S2_1" -eq "12" ]
> > then
> > sed -i "s/^;#12//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP12/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > elif [ "$CHIP_S2_1" -eq "15" ]
> > then
> > sed -i "s/^;#15//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP15/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > elif [ "$CHIP_S2_1" -eq "21" ]
> > then
> > sed -i "s/^;#21//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP21/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > elif [ "$CHIP_S2_1" -eq "31" ]
> > then
> > sed -i "s/^;#31//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP31/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > elif [ "$CHIP_S2_1" -eq "41" ]
> > then
> > sed -i "s/^;#41//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP41/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > elif [ "$CHIP_S2_1" -eq "43" ]
> > then
> > sed -i "s/^;#43//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP43/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > elif [ "$CHIP_S2_1" -eq "51" ]
> > then
> > sed -i "s/^;#51//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP51/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > elif [ "$CHIP_S2_1" -eq "61" ]
> > then
> > sed -i "s/^;#61//"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > sed -i "s/IP61/$IP/"
> > /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf;
> > fi
> > echo "Alteracao concluida com sucesso o equipamento ira reiniciar.
> > Pressione a tecla ENTER para encerrar!";
> > read -n1 -p;
> > # reboot;
> > ;;
> > *)
> > ;;
> > esac
> >
> >  
> >
>




reply via email to

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