Fala Guilherme, repare as linha abaixo: $ IFS=; $ $ od -h <<< "$IFS" 0000000 000a $ IFS=\; $ $ od -h <<< "$IFS" 0000000 0a3b
Repare que no dump em hexadecimal (só vale o que está à direita do espaço em branco, o esquerdo é um sequenciador), na 1a tentativa a variável ficou vazia (0a é um <ENTER>) e na segunda recebeu 3b, que é o valor ascii do ponto-e-virgula em hexadecimal. Isso é pq o ponto-e-vírgula é significativo para o shell (o interpreta como o fim de um cmd) e portanto deve ser protegido da sua interpretação. -- Abraços, Julio Cursos de Shell e Zenity? *- Em SP ligue (11) 2125-4747; - Em DF ligue (61) 3223-3000; - No RJ darei um treinamento em 23/07 (p/ detalhes ligue (21) 2561-0867); - Turmas fechadas em outras cidades ligue (21) 8112-9988* 2009/5/29 Guilherme Andrade <guilherme.andra...@gmail.com> > > > Olá, estou fazendo um script que envia e-mails que estão em um arquivo de > texto, email.txt. > O arquivo está no formato nome;email e manda a mensagem que está no arquivo > mensagem.txt > > Segue o script, porém está com erro ao ler a variavel email no comando mail > > #!/bin/bash > IFS=; > while read nome email > do > echo $nome ... $email > echo "Caro $nome, `cat mensagem.txt`" | mail -s assunto $email > done < email.txt > > Obrigado desde já, a quem puder me ajudar. > > [As partes desta mensagem que não continham texto foram removidas] > > > [As partes desta mensagem que não continham texto foram removidas]