Pular para o conteúdo

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

Responder tópico
  • Denunciar
  • Indicar

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

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 :)

Responder tópico

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

Melhor resposta

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]

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]

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]

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

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

\o/


abç.

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder