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

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

Re: [shell-script] Re: out of string space


From: Julio C. Neves
Subject: Re: [shell-script] Re: out of string space
Date: Wed, 29 Jan 2014 21:44:47 -0200

Evaldo, não sei pq, um pedaço do meu e-mail sumiu. Então repare a linha em que fiz o sed, que farei uma correção.

Em 29 de janeiro de 2014 21:03, Evaldo <address@hidden> escreveu:
 


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,

que
 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:


Troque:
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;

por:
sed -i "s/^\;#12//;s/IP12/$IP/" /persistent/var/lib/asterisk/db/custom-cfg/extensions_custom.conf

>
> 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]