Como fazer um FOR com separador em um Script? [RESOLVIDO]

1. Como fazer um FOR com separador em um Script? [RESOLVIDO]

Orlando
orlandopereira

(usa Outra)

Enviado em 17/03/2015 - 23:45h

Olá pessoal,

Estou com essa duvida já tenho um código que faz a separação por ";" só que não sei como que ficaria com FOR para que independente do numero de emails ele separe os emails para posterior enviar.

Objetivo: receber 'n' emails em uma variável separado por ";" e apos passar por um FOR ou outro laço de repetição, para que ele envie os emails para cada um dos contatos(já tenho o envio funcionando).


string="abc@hotmail.com;xyz@gmail.com;uvw@yahoo.com"
var=$(echo $string | awk -F";" '{print $1,$2,$3}')
set -- $var
echo $1
echo $2
echo $3


Alguém pode me ajudar?

Até agora só sei usar só o IF :)


  


2. MELHOR RESPOSTA

Perfil removido
removido

(usa Nenhuma)

Enviado em 18/03/2015 - 07:15h


#!/bin/bash

string="abc@hotmail.com;xyz@gmail.com;uvw@yahoo.com"
for mail in $(echo $string | tr ';' ' '); do
# Coloque aqui o que fazer com cada email
done

-----------------------------------------------------------------------------
Uma vida não questionada não merece ser vivida - Platão

3. Re: Como fazer um FOR com separador em um Script? [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 18/03/2015 - 00:17h

Se eu entendi sua dúvida, você quer usar o tr e o xargs.

echo $LISTA_COM_PONTO_E_VIRGULA | tr ';' ' ' | xargs -r sh -c 'mail -s "Titulo da mensagem" $0 $@ < arquivo_com_texto_da_mensagem' 



4. Re: Como fazer um FOR com separador em um Script? [RESOLVIDO]

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 18/03/2015 - 13:10h

Todas as soluções apresentadas são boas e deve existir mais algumas outras muito boas também, mas pela sua dúvida me parece que está iniciando e vou te dar alguns toques.

Existe um separador padão de input (IFS - Input Field Separator) que em geral é o branco (" ") e algumas ve, se quizer ver o seu de um echo $IFS ... não apareceu nada ... pois é ... é branco.

Então na sua questão o que você precisaria fazer é ... ou transformar o ; em espaço que é o IFS padrão, ou transformar o IFS em ";", como se faz isso?? Simples IFS=";".

ex.:
#!/bin/bash
string="abc@hotmail.com;xyz@gmail.com;uvw@yahoo.com"
IFS=";" ;for mail in $string; do
echo $mail
done



5. Re: Como fazer um FOR com separador em um Script? [RESOLVIDO]

Orlando
orlandopereira

(usa Outra)

Enviado em 18/03/2015 - 20:14h

Obrigado a todos consegui com os exemplos foi ver qual melhor se encaixa.

\o/


abç.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts