Re: [DEBIAN-MS: 7047] Dúvida com Shell Script

2016-05-16 Por tôpico SamuelOPH
Pegando no pé um pouco

Em 16 de maio de 2016 19:29, Henrique Fagundes 
escreveu:

> ​​
> cat /root/dominios.txt | egrep -v "^[#;]"


D
​everia ser:
​​egrep -v "^[#;]" /root/dominios.txt

Usar o cat excessivamente é um dos erros mais comuns ao fazer shell
scripts, sendo o não cuidado com a expansão de variáveis o segundo.

Indico o uso do shellcheck[1] para todo mundo que trabalha com
shellscripts, é um linter de shellscript, tem um plugin para o Atom também.

​[1]https://github.com/koalaman/shellcheck​

​
Samuel Henrique O. P. [samueloph]


Re: [DEBIAN-MS: 7047] Dúvida com Shell Script

2016-05-16 Por tôpico Henrique Fagundes

Colegas,

Resolvi dessa maneira:

for dominios in `cat /root/dominios.txt | egrep -v "^[#;]" `; do
sed -i '33i\blacklist_from *'$dominios'\' /opt/zimbra/conf/salocal.cf.in
done

Funcionou direitinho agora!

Atenciosamente,

Henrique Fagundes
henri...@linuxadmin.com.br
Skype: magnata-br-rj
Linux User: 475399

http://www.aprendendolinux.com/
http://www.facebook.com/PortalAprendendoLinux
http://youtube.com/aprendendolinux/
http://twitter.com/aprendendolinux/
__
Participe do Grupo Aprendendo Linux
https://groups.google.com/forum/#!forum/portal-aprendendo-linux

Ou envie um e-mail para:
portal-aprendendo-linux+subscr...@googlegroups.com

 Mensagem original ----
Assunto: Re: [DEBIAN-MS: 7047] Dúvida com Shell Script
De: Patolinux 
Para: debia...@googlegroups.com
CC: debian-user-portuguese , 
Henrique Fagundes 

Data: 16/05/2016 19:02


Oi Henrique,

as aspas simples inibem a substituição de variáveis. Nesse caso, use
aspas duplas.

É provável que daí você tenha que colocar \\ dentro das aspas duplas
para obter \ no final das contas.

Você pode ainda usar spas simples e:
* fechar as aspas simples imediatamente antes do $
* abrir aspas duplas
* fechar as aspas duplas imediatamente depois do nome da variável
* abrir aspas simples
* fechar as aspas simples no final.

Fica meio difícil de visualizar porque aparecem várias aspas juntas, mas
é mais ou menos isso:

sed -i '33i\blacklist_from *'"$dominios"'\'
/opt/zimbra/conf/salocal.cf.in <http://salocal.cf.in>

Abraço,

   Diego



Em 16 de maio de 2016 16:59, Henrique Fagundes
mailto:henri...@linuxadmin.com.br>> escreveu:

Amigos,

Saudações pinguianas.
Estou com uma dúvida em um Shell.

Vejam:

#!/bin/bash

for dominios in `cat /root/dominios.txt | egrep -v "^[#;]" `; do
sed -i '33i\blacklist_from *$dominios\'
/opt/zimbra/conf/salocal.cf.in <http://salocal.cf.in>
done

Dentro do arquivo "/root/dominios.txt" tem o seguinte conteúdo:
teste.com.br <http://teste.com.br>

Então, era para o script fazer o seguinte: Adicionar a linha
"blacklist_from *teste.com.br <http://teste.com.br>" na linha 33 do
arquivo /opt/zimbra/conf/salocal.cf.in <http://salocal.cf.in>.

Só que isso não está acontecendo! Ao invés disso, ele está
adicionando a linha "blacklist_from *$dominios".

Alguém sabe como eu posso fazer para forçar o script a interpretar a
variável?

Desde já muito grato.

Atenciosamente,

Henrique Fagundes
henri...@linuxadmin.com.br <mailto:henri...@linuxadmin.com.br>
Skype: magnata-br-rj
Linux User: 475399

http://www.aprendendolinux.com/
http://www.facebook.com/PortalAprendendoLinux
http://youtube.com/aprendendolinux/
http://twitter.com/aprendendolinux/
__
Participe do Grupo Aprendendo Linux
https://groups.google.com/forum/#!forum/portal-aprendendo-linux

Ou envie um e-mail para:
portal-aprendendo-linux+subscr...@googlegroups.com
<mailto:portal-aprendendo-linux%2bsubscr...@googlegroups.com>

--
--
Você recebeu esta mensagem porque está inscrito no Grupo "Debian MS".

Para postar neste grupo, envie um e-mail para
debia...@googlegroups.com <mailto:debia...@googlegroups.com>

Para ver mais opções, visite este grupo em
http://groups.google.com/group/debianms?hl=pt-BR
--- Você está recebendo esta mensagem porque se inscreveu no grupo
"Debian MS" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele,
envie um e-mail para debianms+unsubscr...@googlegroups.com
<mailto:debianms%2bunsubscr...@googlegroups.com>.
Para obter mais opções, acesse https://groups.google.com/d/optout.






Re: [DEBIAN-MS: 7047] Dúvida com Shell Script

2016-05-16 Por tôpico Patolinux
Oi Henrique,

as aspas simples inibem a substituição de variáveis. Nesse caso, use aspas
duplas.

É provável que daí você tenha que colocar \\ dentro das aspas duplas para
obter \ no final das contas.

Você pode ainda usar spas simples e:
* fechar as aspas simples imediatamente antes do $
* abrir aspas duplas
* fechar as aspas duplas imediatamente depois do nome da variável
* abrir aspas simples
* fechar as aspas simples no final.

Fica meio difícil de visualizar porque aparecem várias aspas juntas, mas é
mais ou menos isso:

sed -i '33i\blacklist_from *'"$dominios"'\' /opt/zimbra/conf/salocal.cf.in

Abraço,

  Diego



Em 16 de maio de 2016 16:59, Henrique Fagundes 
escreveu:

> Amigos,
>
> Saudações pinguianas.
> Estou com uma dúvida em um Shell.
>
> Vejam:
>
> #!/bin/bash
>
> for dominios in `cat /root/dominios.txt | egrep -v "^[#;]" `; do
> sed -i '33i\blacklist_from *$dominios\' /opt/zimbra/conf/salocal.cf.in
> done
>
> Dentro do arquivo "/root/dominios.txt" tem o seguinte conteúdo:
> teste.com.br
>
> Então, era para o script fazer o seguinte: Adicionar a linha
> "blacklist_from *teste.com.br" na linha 33 do arquivo /opt/zimbra/conf/
> salocal.cf.in.
>
> Só que isso não está acontecendo! Ao invés disso, ele está adicionando a
> linha "blacklist_from *$dominios".
>
> Alguém sabe como eu posso fazer para forçar o script a interpretar a
> variável?
>
> Desde já muito grato.
>
> Atenciosamente,
>
> Henrique Fagundes
> henri...@linuxadmin.com.br
> Skype: magnata-br-rj
> Linux User: 475399
>
> http://www.aprendendolinux.com/
> http://www.facebook.com/PortalAprendendoLinux
> http://youtube.com/aprendendolinux/
> http://twitter.com/aprendendolinux/
> __
> Participe do Grupo Aprendendo Linux
> https://groups.google.com/forum/#!forum/portal-aprendendo-linux
>
> Ou envie um e-mail para:
> portal-aprendendo-linux+subscr...@googlegroups.com
>
> --
> --
> Você recebeu esta mensagem porque está inscrito no Grupo "Debian MS".
>
> Para postar neste grupo, envie um e-mail para debia...@googlegroups.com
>
> Para ver mais opções, visite este grupo em
> http://groups.google.com/group/debianms?hl=pt-BR
> --- Você está recebendo esta mensagem porque se inscreveu no grupo "Debian
> MS" dos Grupos do Google.
> Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie
> um e-mail para debianms+unsubscr...@googlegroups.com.
> Para obter mais opções, acesse https://groups.google.com/d/optout.
>