Oi, Eric,

muito obrigada, funcionou perfeitamente.

Eu estava tentando TANTO usar o awk que deixei passar que poderia
haver uma solução mais direta.

Abração!

2010/1/12 <[email protected]>
>
> Bom dia!
>
> Testei o que eu programei abaixo e funcionou:
>
> r...@desktophome:~$ cat nhanha.sh
> # considerem as variáveis $nome, $GID_MIN e $GID_MAX já definidas:
> # $nome é um nome de usuário do sistema.
> # GID_MIN = 15000, GID_MAX = 15999.
>
> nome="eric"
> GID_MIN="15000"
> GID_MAX="15999"
>
> for proj in `groups $nome | cut -d ":" -f2`
> do
> # descobrir se proj-id é maior do que 15000
> # se sim, imprimir o nome do projeto (no awk) e depois verificar os tickets
> GROUPID=$(getent group | grep "^$proj:" | cut -d":" -f3)
> # ??? aqui mora meu problema
> # o trecho abaixo (3 linhas) deve ser executado somente se o GID estiver 
> entre 15000 e 15999
>     if [ $GROUPID -gt 15000 ] ;then
>         if [ $GROUPID -lt 15999 ]; then
>         tprojdb="/home/trac/"$proj"/db/trac.db"
>         echo "select id,status,summary from ticket where nome=='$nome'
>         and status!='closed';" | sqlite3 $tprojdb
>         echo ""
>         fi
>     fi
> done
>
> sds
>
> Eric
>
> On Ter 12/01/10 08:46 , Andrea VB [email protected] sent:
>
>
>
> Olá, pessoal!
>
> Estou com um probleminha que acredito ser de simples solução, porém
> não consigo alcançá-la...
>
> Tenho em meu sistema alguns grupos "especiais", com GIDs maiores do
> que 15000 e menores do que 15999 (tais grupos são utilizados em
> projetos no Trac).
> Cada usuário pertence a um ou mais grupos "especiais", mas também a
> outros grupos (como 'users', 'voice' etc).
> Cada grupo "especial" possui um diretório "/home/trac/$proj", mas isso
> não ocorre com users, voice etc...
>
> Eu preciso coletar informações sobre cada projeto para um determinado usuário.
> Se o usuário joao está nos grupos users, wheel, projeto1, projeto2 e
> novoprojeto, preciso coletar tais informações dos grupos projeto1,
> projeto2 e novoprojeto.
>
> Estou tentando resolver o problema com AWK, mas aceito outras soluções
> (sed, bashismos, qq coisa que resolva).
> O meu problema é que, embora eu consiga descobrir se o grupo está na
> faixa de GID desejada, eu não consigo tratar a resposta... Alguém
> poderia me ajudar com isso, por favor?
> Segue abaixo o que eu tenho...
>
> Muito obrigada,
> Andrea VB
>
> # considerem as variáveis $nome, $GID_MIN e $GID_MAX já definidas:
> # $nome é um nome de usuário do sistema.
> # GID_MIN = 15000, GID_MAX = 15999.
>
> for proj in `groups $nome`
> do
> # descobrir se proj-id é maior do que 15000
> # se sim, imprimir o nome do projeto (no awk) e depois verificar os tickets
> getent group | grep $proj | awk -F: "{if ((\$3 >= $GID_MIN) &&
> (\$3 <= $GID_MAX)) print \$1 }"
> # ??? aqui mora meu problema
> # o trecho abaixo (3 linhas) deve ser executado somente se o GID
> estiver entre 15000 e 15999
> tprojdb="/home/trac/"$proj"/db/trac.db"
> echo "select id,status,summary from ticket where nome=='$nome'
> and status!='closed';" | sqlite3 $tprojdb
> echo ""
> done
>
> --
> Andrea VB
> Please, don't CC me when replying to me on the lists, and use BCC when
> sending mass e-mails.
>
> 



--
Andrea VB
Please, don't CC me when replying to me on the lists, and use BCC when
sending mass e-mails.


------------------------------------

---------------------------------------------------------------------
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: [email protected]
---------------------------------------------------------------------
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

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    [email protected]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html


Responder a