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

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

Re: [shell-script] Re: Erro ao adicionar conteúdo usando echo >>


From: Robson Alexandre
Subject: Re: [shell-script] Re: Erro ao adicionar conteúdo usando echo >>
Date: Thu, 19 May 2011 14:37:57 -0300

É isso ai beforekernel,

do jeito do Mrbits é visualmente melhor e talvez seja mais rapida a
execução, mas vou apresentar duas alternativas que não vai mudar
radicalmente o q vc já tem entre muitas que há.

1ª
Ao invés de
echo " " >> $DIR_ACL/$NOME.acl
coloque
echo -e "\n" >> $DIR_ACL/$NOME.acl
para inserir uma quebra de linha

2ª
Ao invés de pesquisar com
sed '/^$/q' projeto.acl
Pesquise com
sed '/^ $/q' projeto.acl
Note que há um espaço entre ^(inicio) e $(final) sem modificações no seu
script que acabara de enviar.

Atenciosamente

Robson Alexandre

Em 19 de maio de 2011 08:51, beforekernel <address@hidden>escreveu:

>
>
> Corrigindo...
>
>
> #!/bin/bash
> #VARIAVEIS TESTE
> DIR_ACL=/tmp
> NOME=projeto
>
> G1='GCS'
> G2='LIDER DE PROJETOS'
> G3='GERENTE DE PROJETOS'
> G4='DIRETOR DE OPERACOES'
> G5='AUDITORIA DE QUALIDADE-GAQ'
> G6='ARQUITETO'
> G7='ANALISTA DE SISTEMAS'
> G8='PROGRAMADOR'
> G9='INTEGRADOR'
> G10='ARQUITETO'
> G11='ANALISTA DE USABILIDADE'
> G12='ANALISTA DE TESTES'
> G11='TESTADOR'
>
> echo "[groups]" > $DIR_ACL/$NOME.acl
> echo "$G1 = rw" >> $DIR_ACL/$NOME.acl
> echo "$G2 = r" >> $DIR_ACL/$NOME.acl
> echo "$G3 = r" >> $DIR_ACL/$NOME.acl
> echo "$G4 = r" >> $DIR_ACL/$NOME.acl
> echo "$G5 = r" >> $DIR_ACL/$NOME.acl
> echo "$G6 = r" >> $DIR_ACL/$NOME.acl
> echo "$G7 = r" >> $DIR_ACL/$NOME.acl
> echo "$G8 = r" >> $DIR_ACL/$NOME.acl
> echo "$G9 = r" >> $DIR_ACL/$NOME.acl
> echo "$G10 = r" >> $DIR_ACL/$NOME.acl
> echo "$G11 = r" >> $DIR_ACL/$NOME.acl
> echo " " >> $DIR_ACL/$NOME.acl
>
> echo "[/]" >> $DIR_ACL/$NOME.acl
> echo "@$G1 = rw">> $DIR_ACL/$NOME.acl
>
> echo "@$G2 = r" >> $DIR_ACL/$NOME.acl
> echo "@$G3 = r" >> $DIR_ACL/$NOME.acl
> echo "@$G4 = r" >> $DIR_ACL/$NOME.acl
> echo "@$G5 = r" >> $DIR_ACL/$NOME.acl
> echo "@$G6 = r" >> $DIR_ACL/$NOME.acl
> echo "@$G7 = r" >> $DIR_ACL/$NOME.acl
> echo "@$G8 = r" >> $DIR_ACL/$NOME.acl
> echo "@$G9 = r" >> $DIR_ACL/$NOME.acl
> echo "@$G10 = r" >> $DIR_ACL/$NOME.acl
> echo "@$G11 = r" >> $DIR_ACL/$NOME.acl
>
> --- Em address@hidden, MrBiTs <mrbits.dcf@...> escreveu
>
> >
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA256
> >
> > On 05/18/2011 15:19 , beforekernel wrote:
> > > Prezados,
> > > Estava desenvolvendo um script para automatizar a rotina de criação e
> adminstração de versões do subversion e TRAC,
> > > como já esta definida a politica de acesso de cada cargo então criei o
> arquivo de acl baseada por perfis de acesso aonde o
> > > script mesmo que gera este arquivo com um simples (echo "conteudo" >
> /var/repositorio/config/acls/projeto1.acl), porem quando
> > > tento manipular o arquivo texto gerado para filtrar, cortar, substituir
> ou qualquer outra manipulação, não é efetivo, por exemplo:
> > >
> > > crio um script:
> > >
> > > #!/bin/bash
> > > #VARIAVEIS TESTE
> > > DIR_ACL=/tmp
> > > NOME=projeto
> > >
> > > G1='GCS'
> > > G2='LIDER DE PROJETOS'
> > > G3='GERENTE DE PROJETOS'
> > > G4='DIRETOR DE OPERACOES'
> > > G5='AUDITORIA DE QUALIDADE-GAQ'
> > > G6='ARQUITETO'
> > > G7='ANALISTA DE SISTEMAS'
> > > G8='PROGRAMADOR'
> > > G9='INTEGRADOR'
> > > G10='ARQUITETO'
> > > G11='ANALISTA DE USABILIDADE'
> > > G12='ANALISTA DE TESTES'
> > > G11='TESTADOR'
> > >
> > > echo "[groups]" > $DIR_ACL/$NOME.acl
> > > echo "$G1 = rw" >> $DIR_ACL/$NOME.acl
> > > echo "$G2 = r" >> $DIR_ACL/$NOME.acl
> > > echo "$G3 = r" >> $DIR_ACL/$NOME.acl
> > > echo "$G4 = r" >> $DIR_ACL/$NOME.acl
> > > echo "$G5 = r" >> $DIR_ACL/$NOME.acl
> > > echo "$G6 = r" >> $DIR_ACL/$NOME.acl
> > > echo "$G7 = r" >> $DIR_ACL/$NOME.acl
> > > echo "$G8 = r" >> $DIR_ACL/$NOME.acl
> > > echo "$G9 = r" >> $DIR_ACL/$NOME.acl
> > > echo "$G10 = r" >> $DIR_ACL/$NOME.acl
> > > echo "$G11 = r" >> $DIR_ACL/$NOME.acl
> > > echo "$G12 = r" >> $DIR_ACL/$NOME.acl
> > > echo "$G13 = r" >> $DIR_ACL/$NOME.acl
> > > echo " " >> $DIR_ACL/$NOME.acl
> > > [/]
> > > echo "@GCS = rw"
> > > echo "@LIDER DE PROJETOS = r"
> > > echo "@GERENTE DE PROJETOS = r"
> > > echo "@DIRETOR DE OPERACOES = r"
> > > echo "@AUDITORIA DE QUALIDADE-GAQ = r"
> > > echo "@ARQUITETO = r"
> > > echo "@ANALISTA DE SISTEMAS = r"
> > > echo "@PROGRAMADOR = r"
> > > echo "@INTEGRADOR = r"
> > > echo "@ARQUITETO = r"
> > > echo "@ANALISTA DE USABILIDADE = r"
> > > echo "@ANALISTA DE TESTES = r"
> > > echo "@TESTADOR = r"
> > >
> > > executo este script
> > > ele gera o arquivo perfeito, quanto executo por exemplo um sed para
> pegar o conteudo do arquivo até a primeira linha em branco:
> > >
> > > $ sed '/^$/q' /tmp/projeto.acl
> > >
> > > ele me traz o conteudo todo do arquivo.
> > >
> > > se simplesmente copio o conteudo e colo em outro arquivo funciona, a
> unica solução que achei para adequar no script foi utilizar variaveis com o
> conteudo, assim:
> > >
> > > LINHAACL1="[groups]"
> > > echo $LINHAACL1 > $DIR_ACL/$NOME.acl
> > >
> > > desta forma ele funciona perfeito, alguem sabe me dizer porque ?
> > >
> > >
> >
> > Eu não estou vendo nos seus echos um que gere uma linha vazia (^$). O que
> você faz é mandar vários espaços para a última linha dele,
> > e isso não casa com ^$.
> >
> > Já pensou em usar uma construção mais agradável aos olhos e muito mais
> rápida nas questões de I/O, assim:
> >
> > cat <<__EOF__>>$DIR_ACL/$NOME.acl
> > [groups]
> > $G1 = rw
> > $G2 = r
> > $G3 = r
> > $G4 = r
> > $G5 = r
> > $G6 = r
> > $G7 = r
> > $G8 = r
> > $G9 = r
> > $G10 = r
> > $G11 = r
> > $G12 = r
> > $G13 = r
> >
> > __EOF__
> >
> > Ao invés de você abrir e fechar o arquivo de ACLs a cada echo, abra-o uma
> vez e grave tudo nele
> >
> >
> > - --
> >
> > LLAP
> >
> > .0. MrBiTs - mrbits.dcf@...
>
> > ..0 GnuPG -
> http://keyserver.fug.com.br:11371/pks/lookup?op=get&search=0x6EC818FC2B3CA5AB
> > 000 http://www.mrbits.com.br
> >
> >
> > -----BEGIN PGP SIGNATURE-----
> > Version: GnuPG v1.4.10 (Darwin)
> >
> > iQEcBAEBCAAGBQJN1CvsAAoJEG7IGPwrPKWr5TMH/jT+ZQLcyCEwEcA7YaJFFUd8
> > qDVi96mdcir2Dyb+NECTDUA6DUOA4FVM0IeBJidC5EzDB7JE82Tu8O/KDWXOeYMI
> > jmBt65jn5PdV1Q1T87njORw5ukNKR1/5wzzmWvZz/nxGJQjqzYeTDbqV1zSminXb
> > LAzWB+hNBIiENPdEX8InNf02uWJd/+LXIEjSnkHA/DKaYR9FjR+W4H+iIF/EsnRZ
> > 2+NNuMdxffl+HvcIZQmwcVPoMb9Tifymkqv637TwpCYxxWoSoHeLsDftOR3Dn76J
> > zop3uct/rXJhRgG+qLIZ+mSFmnSZ69CKB722/9BidqYpVPzQhwZHWbtWXbOlJmg=
> > =1xyP
> > -----END PGP SIGNATURE-----
> >
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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