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 19:10:56 -0200

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

03-07/02

Curitiba

SoftSell

17-21/02

Rio de Janeiro

EDX

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 <address@hidden> 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]