Problemas com vetores em shell script
Pessoal,
Estou tentando montar um pequeno shell script que leila meu /etc/group e gere um vetor area[GID]=nomegrupo.
Para isso estou usando o awk e aplicando condições para ele buscar uma faixa de GIDs apenas e jogando a saida dele para um while para trabalhar com cada grupo separadamente.
Código :
awk -F: '$3 >= 500 && $3 <= 600 {print $1 " " $3}' /etc/group | while read group gid;
do
area[$gid]=$group;
done;
Dentro do bloco do while, eu consigo acessar o valor da variável area, mas fora, ela esta sempre em branco. (echo ${area[500]} retorna vazio)
Tentei declarar a variável area atravez de um declare -ax antes de iniciar o bloco mas não obtive resultado.
Eu nunca tinha usado o declare e existem grandes chances de estar cometendo algum erro :)
Agradeço qualquer idéia sobre o que pode ser feito.
Problemas com vetores em shell script
ja ta complicando ....
eu jah faria em perl isso, se envolve essas coisas "mais avancadas".
open(file, "/etc/group");
while (<file>) {
$grupo , $gid = split (":");
$hash{$gid} = $grupo;
}
close(file);
for each $key in keys %hash
{
print "$key -> $hash{$key}\n";
}
acho que isso ae jah eum comeco.
www.perl.org
Problemas com vetores em shell script
Olá comunidade,
tb faria em perl... dá uma olhada:
while (($nome, $lixo, $gid) = getgrent) {
$gid{$nome} = $gid;
}
ou poderia ser o contrário: (acho q é assim q vc quer)
while (($nome, $lixo, $gid) = getgrent) {
$gid{$gid} = $nome;
}
Agora se naum quiser, tenta escrever o valor da area que vc possui dentro do loop, em um arquivo separado, se ele escrever dá pra vc utilizar o arquivo....
falow