![]() |
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.
|
|
google unix.com
|
|||||||
| Forums | Register | Forum Rules | Links | Albums | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here. |
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| read list of filenames from text file and remove these files in multiple directories | fxvisions | Shell Programming and Scripting | 5 | 08-07-2008 03:59 PM |
| read list of filenames from text file, archive, and remove | fxvisions | Shell Programming and Scripting | 5 | 03-20-2007 09:56 PM |
| read a part of filename from the list in the script | happyv | Shell Programming and Scripting | 3 | 10-20-2006 09:58 AM |
| read a list one at a time | nortypig | Shell Programming and Scripting | 7 | 08-27-2006 09:50 PM |
| list read only files using find | vivekshankar | UNIX for Dummies Questions & Answers | 1 | 05-26-2005 04:47 PM |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
||||
|
read from a file to a list
Hello there,
I have a file that contents a list of email address, and each is separated by new lines. I want to read the first email address into TO: filed and the rest into a list and goes to cc field. I plan to use mailx to send the email. I inserted the email addresses into an array, but what can I do to turn the array into a list, so I can pass it to mailx command? The script is working, but it prints list of cc one by one. That won't work for mailx since I need all of them in a list. Thanks! #read email address line by line, the first line always goes to TO field fname="/home/.../emailFile.txt" cc[100]="" #list of cc receipients exec<$fname value=0 while read line do value=`expr $value + 1`; if [ $value -eq 1 ] then headit=$line echo "headit email is: $headit" #receipient email address, always the first line in the file else cc[$value]=$line echo "it contacts email: ${cc[$value]}" fi done #mailx command to send email with a text body, attachment, cc, bcc, and replying address, echo "test" | cat - body.txt | mailx -a attachment.html -b "bcc@mail.com" -c "$cc" -s "test" -r "reply@mail.com" "$headit" |
|
||||
|
Hi,
to read all emails into an array: Code:
email=( $(cat file) ) Code:
TO=$email[1] Code:
CC=$(for i in {2..${#email[@]}}; do printf "%s " ${email[$i]}; done)
HTH Chris |
|
||||
|
Hi,
there is a small error in there. It has to be: cc=$(for i in {2..${#email[@]}}; do printf "%s, " ${email[$i]}; done ![]() The comma was missing as you need a comma separated list of repicipients. I don't use mailx but mutt. The following line does the trick for me: echo test | mutt -s test -c "$cc" -- $to HTH Chris |
|
||||
|
Thanks for everyone's posts. I really appreciate it. Chris's code has not worked for me though, this is the output:
someone@mail.com[1] {2..2}: syntax error: operand expected (error token is "{2..2}") #maybe because I only have two email address in the file. It is possible that the file only contents 1 or 2 email addresses. Zaxxon's code worked for me. Thanks again for all the inputs. Last edited by pinkgladiator; 11-18-2008 at 01:35 PM.. |
| Sponsored Links | ||
|
|