Script usando o FOR com nomes [RESOLVIDO]

1. Script usando o FOR com nomes [RESOLVIDO]

Wellington da Silveira
wellingtonsilve

(usa Ubuntu)

Enviado em 13/03/2012 - 16:27h

Olá pessoal,

Estou precisando de um script que faça uma rotina utilizando o FOR, mas com nome de usuários.

Por exemplo:

Quero que imprima na tela todos os usuários que possuo no shell, exemplo abaixo:

#!/bin/bash
usuario1="fulano"
usuario2="beltrano"
usuario3="ciclano"

funcao () {
for x in $(seq $1 $2); do
print="usuario"$x
imprime=$print
done
}

funcao 1 3

Gostaria que o resultado na tela fosse:

fulano
beltrano
ciclano

Sei que para uns parece ser fácil, mas estou com dificuldade, me ajudem!!!

Abraços comunidade VOL.


  


2. Duas soluções

Júlio Hoffimann Mendes
julio_hoffimann

(usa Ubuntu)

Enviado em 13/03/2012 - 18:42h

Oi Wellington,

O Bash suporta loops com strings, primeira opção:

#!/usr/bin/bash

for name in fulano cicrano beltrano; do
echo $name
done


Segunda opção:

#!/usr/bin/bash

names='fulano cicrano beltrano'
for name in $names; do
echo $name
done


Por favor marque o tópico como resolvido, e se possível a melhor resposta.

Abraço!


3. Re: Script usando o FOR com nomes [RESOLVIDO]

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 14/03/2012 - 12:48h

Se entendi direito seu problema seria resolvido com um EVAL ... mais ou menos assim:

usuario1="fulano"
usuario2="beltrano"
usuario3="ciclano"

funcao() {
for x in $(seq $1 $2); do

eval echo '$usuario'$x

done
}

funcao 1 3





4. eval

Júlio Hoffimann Mendes
julio_hoffimann

(usa Ubuntu)

Enviado em 14/03/2012 - 12:59h

Oi Davison,

Realmente, talvez o problema dele seja esse que você mencionou, bem notado. ;-)

OBS: O uso do eval geralmente indica mal uso da linguagem. O Bash suporta arrays, não é preciso definir variáveis var1, var2, ..., varn.

Abraço!


5. Re: Script usando o FOR com nomes [RESOLVIDO]

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 14/03/2012 - 13:38h

Realmente ... pense se no que o Júlio disse.

Talvez seja melhor usar um array, abaixo segue alguns exemplos de manipulação com array.

#Para definir a lista
usuarios=( "fulano" "beltrano" "ciclano" )

#Para recuperar apenas o segundo usuario, por exemplo
echo ${usuarios[1]}

#Para alterar o conteudo do segundo usuario
usuarios[1]="outro"

#Para recuperar toda a lista
echo ${usuarios[@]}

# não estranhe o usuario2 ser o usuarios[1], isso acontece porque o primeiro item do array é o array[0] e não o 1.


6. Com arrays

Perfil removido
removido

(usa Nenhuma)

Enviado em 14/03/2012 - 16:15h


#!/bin/bash
# TODO
# Valide os parâmetros da função
# - $1 tem que ser menor que $2
# - ambos tem que ser números inteiros
# - $2 não pode ser maior que o numero de elementos do array
# use: man bash
#
# system GNU bash, version 3.1.17(2)-release i486 slackware 12.2
# autor Paulo Riceli Dias Lelis [ http://sekysu.blogspot.com ]
#
_USER[0]='anortrano'
_USER[1]='fulano'
_USER[2]='beltrano'
_USER[3]='ciclano'
_USER[4]='fuleirando'
#
# $1 integer - inicio
# $2 integer - fim
function _getUserRange ()
{
# _USER[@] - isto é todo o array cinco elementos
# _USER[@]:0:3 - e isto é do 1º elemento ao 4º

echo ${_USER[@]:$1:$2}
}
# Table test
_getUserRange 2 3


Boa sorte!




7. Novo tópico

Júlio Hoffimann Mendes
julio_hoffimann

(usa Ubuntu)

Enviado em 15/03/2012 - 13:26h

Wellington,

Outro problema, outro tópico. Por favor, marque este como resolvido e crie um novo tópico com a nova pergunta.

Agradecemos.


8. Re: Script usando o FOR com nomes [RESOLVIDO]

Júlio Hoffimann Mendes
julio_hoffimann

(usa Ubuntu)

Enviado em 15/03/2012 - 14:35h

Compreenda que o tópico "Script usando FOR com nomes" não tem nenhuma relação com loops em colunas de arquivos.

Manter o fórum organizado é essencial. Se algum outro membro tiver um problema parecido com colunas de arquivos, não entrará neste tópico. Não sejamos egoístas. ;-)

A solução para um problema X desaparece da web quando postada num tópico que descreve um problema Y. (X!=Y)






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts