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