[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Problemas imprimindo variaveis
From: |
Alfredo Casanova |
Subject: |
Re: [shell-script] Problemas imprimindo variaveis |
Date: |
Wed, 19 Apr 2006 16:23:59 -0300 |
Tiago, realmente os problemas eram as aspas :)
quanto à solução do flávio, não iria funcionar, haja visto que sem o $ no
começo, o sed ia adicionar :$r em todas as linhas do arquivo
On 4/19/06, Tiago Barcellos Peczenyj <address@hidden> wrote:
>
> O problema está nas aspas simples:
>
> $ r=apuracoes_especiais_orgao
>
> $ sed '$ s/$/:$r/' passwd
> ciclano:AhdAegerhA#*(hageu:$r
>
> $ sed "$ s/$/:$r/" passwd # entre aspas duplas
> ciclano:AhdAegerhA#*(hageu:apuracoes_especiais_orgao
>
> $ sed '$ s/$/:'$r'/' passwd # usando aspas simples, basta 'separar' a
> variavel
> ciclano:AhdAegerhA#*(hageu:apuracoes_especiais_orgao
>
> $ awk -v r=$r '{print $0":"r}' passwd # ou usando awk
> ciclano:AhdAegerhA#*(hageu:apuracoes_especiais_orgao
>
> On 4/19/06, Alfredo Casanova <address@hidden> wrote:
> > Olá
> > estou fazendo um script pra adicionar usuários em um repositório CVS...
> > então, ao inves de criar usuarios no linux, eu crio via htpasswd, e dou
> > permissões pra eles adicionando :nomedeusuario no final da linha, que
> faz
> > ele herdar permissoes do linux, certo?
> >
> > entao, eu criei um usuário LINUX pra cada repositório, e pra cada
> usuário
> > htpasswd que eu crio nesse repositório, eu tenho q adicionar o :talnome
> no
> > final da linha
> > exemplo
> >
> > tem um repositorio chamado teste
> > então, criei no linux um usuario chamado teste e setei as devidas
> permissoes
> > aí, pra adicionar um ciclano com permissao de +rw no repositorio teste,
> eu
> > fazia:
> > htpasswd ciclano
> > dpois ia no arquivo, e tava assim:
> >
> > ciclano:AhdAegerhA#*(hageu
> >
> > entao, eu adicionava :teste
> > ficando:
> >
> > ciclano:AhdAegerhA#*(hageu:teste
> >
> > assim ele herda as permissoes do usuario teste.
> >
> > entao, ocorreu que surgiu um repositorio com nome muito grande, e eu
> criei o
> > nome de usuario menor q o nome do repositorio, o que me fez abrir um IF
> no
> > meu script:
> >
> > #!/bin/bash
> >
> > if [ $# -eq 0 ]
> > then
> > echo "uso: $0 <nome.usuario>"
> > exit 1
> > fi
> > clear
> > echo Adicionando usuário ao banco CVS em `uname -n`
> > echo `date`
> > echo Em qual repositório quer adicionar usuário?
> > ls -lah /usr/cvs | cut -c63- | sed '1,3d' | sed
> > '$a\-----------------------' | sed '$i\-----------------------'
> > read -p "repositorio (case sensitive): " r
> > cd /usr/cvs/$r/CVSROOT
> > echo Efetuando copia de seguranca do arquivo de senhas
> > cp passwd passwd.old
> > echo Adicionando usuario $1
> > htpasswd passwd $1
> > if [ $r != apuracoes_especiais_orgao ]
> > then
> > sed '$ s/$/:$r/' passwd >tmp
> > else
> > sed '$ s/$/:apuracoes/' passwd >tmp
> > fi
> > sort -o tmp tmp
> > mv tmp passwd
> > echo Usuario $1 Criado!
> >
> >
> >
> >
> > então, quando ele cai no "else", ele cria corretamente, com o :apuracoes
> > mas agora, quando cai no if, ao inves de interpretar o $r como o valor
> da
> > variavel, ele interpreta o $r como texto, e faz:
> > ciclano:aGUEH789AE&*9890:$r
> >
> > o que pode ser?
> --
> Tiago B Peczenyj
> Linux User #405772
>
> # cd /pub
> # more beer
>
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
>
> Links do Yahoo! Grupos
>
>
>
>
>
>
>
>
--
[]'s
Alfredo Casanova
icq: 15793271
msn: address@hidden
aim: alfredotcasanova
yim: atcasanova2
tel: +55 61 84137319
[As partes desta mensagem que não continham texto foram removidas]