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

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

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


From: MrBiTs
Subject: Re: [shell-script] Erro ao adicionar conteúdo usando echo >>
Date: Wed, 18 May 2011 17:28:28 -0300
User-agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.15) Gecko/20110303 Lightning/1.0b2 Thunderbird/3.1.9

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


reply via email to

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