Galera, com base nos exemplos anteriores consegui montar o script para executar no AIX+KSH. Abaixo o exemplo.
teste_1=Arroz teste_2=Feijao teste_3=Macarao teste_4=Sal (while read i j do echo $i $j done << ! ` echo "$teste_1" "$teste_2" echo "$teste_3" "$teste_4" ` !) Não sei se é a melhor solução mas tá funcionando... Grande Abraço a todos!!! --- Em shell-script@yahoogrupos.com.br, "Julio C. Neves" <julio.ne...@...> escreveu > > Vamos analisar as diferentes forma de fazer isso (apesar de achar que a > primeira [here strings] e terceira [substituição de processos] formas não > funcionam sob AIX + ksh): > > $ echo $teste{1..4} > Arroz Feijao Marcarrao Farofa > $ while read VAR1 VAR2 ; do echo "Var1=$VAR1 Var2=$VAR2"; done <<< "$teste1 > $teste2 $teste3 $teste4" > Var1=Arroz Var2=Feijao Marcarrao Farofa > $ echo $teste1 $teste2 $teste3 $teste4 | while read VAR1 VAR2 ; do echo > "Var1=$VAR1 Var2=$VAR2"; done > Var1=Arroz Var2=Feijao Marcarrao Farofa > $ while read VAR1 VAR2 ; do echo "Var1=$VAR1 Var2=$VAR2"; done < <(echo > "$teste1 $teste2 $teste3 $teste4") > Var1=Arroz Var2=Feijao Marcarrao Farofa > > Até aqui, como vc viu, var1 recebeu Arroz e var2 recebeu o resto. Isso se > deve à uma excelente propriedade do read que vc pode entender melhor lendo > este > texto<https://wiki.softwarelivre.org/TWikiBar/TWikiBarPapo007#E_agora_podemos_ler_os_dados_da> > . > > Para conseguir fazer o que eu acho que vc quer, é preciso passar de 2 em 2 > parâmetros para o read, e para isso, o melhor é usar o xargs, cuja saída > default é o cmd echo. Vc pode obter muito mais informações sobre este super > potente cmd, lendo este > texto<https://twiki.softwarelivre.org/bin/view/TWikiBar/TWikiBarBirinaite>. > Veja então como ficaria: > > $ echo "$teste1 $teste2 $teste3 $teste4" | xargs -n2 | while read VAR1 VAR2 > ; do echo "Var1=$VAR1 Var2=$VAR2"; done > Var1=Arroz Var2=Feijao > Var1=Marcarrao Var2=Farofa > > Abraços, > Julio > Cursos de Shell e Zenity em 2 fins de semana? > - Em SP ligue (11) 2125-4747; > - Em DF ligue (61) 3223-3000 (próxima turma de 1 a 4/10); > - No RJ ligue (21) 2561-0867; > - Turmas fechadas em outras cidades ligue (21) 8112-9988. > > > 2009/9/29 fsilva6 <fsil...@...> > > > > > > > Galera, > > pintou uma duvida relativamente simples, mas que infelizmente não fui capaz > > de soluciona-la. Alguém que já passou por isso poderia me ajudar. > > Estou executando o comado abaixo no AIX, mas não estou obtendo sucesso o > > script não consegue identificar os simbolos "<<". > > > > $teste1=Arroz > > $teste2=Feijao > > $teste3=Marcarrao > > $teste4=Farofa > > > > while read VAR1 VAR2 ; do > > echo "Var1=$VAR1 Var2=$VAR2" > > done <<`echo "$teste1 $teste2 > > $teste3 $teste4"` > > > > Tomei como base o script postado pelo colega no topico anterior mas quando > > tento obter as informações de uma variavel o script abenda. Vale lembrar que > > isso é uma curiosidade, pois acho muito interessante um loop com duas > > vairaveis. > > > > Efetuei alguns teste como o apresentado abaixo e obtive sucesso. > > > > while read cliente telefone ;do > > echo "$cliente $telefone "; > > done < telefone_cliente.csv > > > > ---------------------------------------------------------- > > > > --- Em shell-script@yahoogrupos.com.br <shell-script%40yahoogrupos.com.br>, > > "box_ferrari" <boxferrari@> escreveu > > > > > > --- Em shell-script@yahoogrupos.com.br<shell-script%40yahoogrupos.com.br>, > > Breno Moiana <breno.moiana@> escreveu > > > > > > > > Assim? > > > > > > > > $ for x in a b c d; do for y in 1 2 3 4; do echo "x=$x, y=$y";done;done > > > > x=a, y=1 > > > > x=a, y=2 > > > > x=a, y=3 > > > > x=a, y=4 > > > > x=b, y=1 > > > > x=b, y=2 > > > > x=b, y=3 > > > > x=b, y=4 > > > > x=c, y=1 > > > > x=c, y=2 > > > > x=c, y=3 > > > > x=c, y=4 > > > > x=d, y=1 > > > > x=d, y=2 > > > > x=d, y=3 > > > > x=d, y=4 > > > > > > > > > > > > > > > > Breno. > > > > -- > > > > > > > > > > Laço? Tem que ser um for? Não pode ser um while? > > > > > > Tipo assim: > > > > > > > > > while read VAR1 VAR2 ; do > > > echo "Var1=$VAR1 Var2=$VAR2" > > > done < <(echo 'v1 v2 > > > v3 v4 > > > v5 v6') > > > > > > Var1=v1 Var2=v2 > > > Var1=v3 Var2=v4 > > > Var1=v5 Var2=v6 > > > > > > * note que depois de v2, v4 e v6, há uma quebra de linha. > > > > > > No exemplo, usei um echo, mas suponha que você tenha um arquivo com 2 > > colunas e várias linhas, exemplo, uma relação de nomes e CPF's e queira > > fazer um, digamos assim, "for", com cada linha usando ambas as informações, > > nome e CPF, você pode usar o comando assim > > > > > > cristi...@mga0-fwall-dsl:~> cat lista.txt > > > 1var_A 1var_B > > > 2var_A 2var_B > > > 3var_A 3var_B > > > 4var_A 4var_B > > > 5var_A 5var_B > > > 6var_A 6var_B > > > 7var_A 7var_B > > > 8var_A 8var_B > > > 9var_A 9var_B > > > > > > cristi...@mga0-fwall-dsl:~> while read NOME CPF ; do echo "Nome=$NOME > > CPF=$CPF" ; done < lista.txt > > > Nome=1var_A CPF=1var_B > > > Nome=2var_A CPF=2var_B > > > Nome=3var_A CPF=3var_B > > > Nome=4var_A CPF=4var_B > > > Nome=5var_A CPF=5var_B > > > Nome=6var_A CPF=6var_B > > > Nome=7var_A CPF=7var_B > > > Nome=8var_A CPF=8var_B > > > Nome=9var_A CPF=9var_B > > > > > > Era isso que você queria ou eu viajei? > > > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] >