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

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

Re: [shell-script] Problemas imprimindo variaveis


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] Problemas imprimindo variaveis
Date: Wed, 19 Apr 2006 16:00:47 -0300

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


reply via email to

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