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.