Problem with << redirect - Please help!


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Problem with << redirect - Please help!
# 1  
Old 12-29-2011
Problem with << redirect - Please help!

I have a script to send an email like below. Problem is, the if ..fi block is not getting executed, and is coming as a part of the email body. Can anyone take a look at this? Smilie

Log file shows this:
SEND_MAIL.prog: line 64:
: command not found



Code:
echo "Input Parameters"
echo "----------------"
P_FROM_ID=$5
P_TO_ID=$6
P_CC_ID=$7
P_SUBJECT=$8
P_BODY1=$9
P_BODY2=${10}
P_BODY=$P_BODY1$P_BODY2
echo 'From ID               :'  $P_FROM_ID
echo 'To ID                 :'  $P_TO_ID
echo 'CC ID                 :'  $P_CC_ID
echo 'Subject		      :'  $P_SUBJECT
echo 'Body1		    :'$P_BODY1
echo 'Body2		    :'$P_BODY2	
echo 'Body		    :'$P_BODY
echo "Process Output"
echo "--------------"

(cat<<HERE;(echo $P_BODY))|sendmail -oi -t -f From:${P_FROM_ID} 
To:${P_TO_ID}
Subject:${P_SUBJECT}
if [ $? -eq 1 ]
then
    echo 'ERROR while sending email.'
    exit 1
fi

# 2  
Old 12-29-2011
A 'here doc' needs to have an end (the "HERE" in your case). You don't have an end to your doc, so it ends up taking everything to the end of file. Something like this might work if I understand what you are trying to do.

Code:
cat <<endKat | sendmail -oi -t -f $P_FROM_ID
To: ${P_TO_ID}
From: ${P_FROM_ID}
Subject: ${P_SUBJECT}

$P_BODY
endKat
if [ $? -eq 1 ]
then
    echo 'ERROR while sending email.'
    exit 1
fi

I used endKat as there is very little chance that that word will appear in the document itself.
This User Gave Thanks to agama For This Post:
# 3  
Old 12-29-2011
FWIW--

EOF is kind of the de facto choice for this. Old timers like me prefer the bang, !

Any character(s) not part of a command script are great choices. The trailing EOF or whatever MUST BE IN COLUMN 1 -- the leftmost column.
This User Gave Thanks to jim mcnamara For This Post:
# 4  
Old 01-02-2012
Thanks for the help, but still this is coming in the output:


Code:
endKat
if [ 126 -eq 1 ]
then
    echo 'ERROR while sending email.'
    exit 1
fi

# 5  
Old 01-02-2012
The options to your sendmail command are wrong!

Send some emails to yourself using cat <file>|sendmail <options> until you understand how it works.

Do you even have the command 'sendmail' on your machine?

Maybe you have to install sendmail or postfix first. (*cough*postfix*cough*)

Greetings,
Eric
(Did I mention postfix?)
This User Gave Thanks to edehont For This Post:
# 6  
Old 01-03-2012
Hi Eric,
I have sendmail on my system and i am actually getting the emails from this script. Only issue is that any commands after the sendmail command is coming as email body.

Thanks for your time,
# 7  
Old 01-03-2012
this may not work but ... try adding a "." in the last line by itself before closing the here doc ...
Code:
.
endKat

This User Gave Thanks to Just Ice For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Web Development

Htaccess Redirect Problem

Hi, I have this string that I need to match and redirect to an actual live url. I have tried what I know and it won't match. This is the url I want to match. http://www.abc.com/smf_test/?topic=191.0;wap2 here is my attempt at a pattern match RewriteCond %{REQUEST_URI} ^/smf_test/$... (0 Replies)
Discussion started by: sharingsunshine
0 Replies

2. Shell Programming and Scripting

Redirect Problem

Hi, I have perl script which is calling an external command using "system()" with argument. But i am not able to capture the output.Even tried with backtick also with no luck. . . $number=<>; system ("cmd $number >output.txt"); (2 Replies)
Discussion started by: rasingraj
2 Replies

3. Shell Programming and Scripting

redirect stdout and stderr to file wrong order problem with subshell

Hello I read a lot of post related to this topic, but nothing helped me. :mad: I'm running a ksh script with subshell what processing some ldap command. I need to check output for possible errors. #!/bin/ksh ... readinput < $QCHAT_INPUT |& while read -p line do echo $line ... (3 Replies)
Discussion started by: Osim
3 Replies

4. Solaris

Cron redirect problem

Hello all, I have a script that I am trying to execute and redirect the output to a file, but I have trouble in redirection. The cron job is running properly as I see it in the mail. This is what I am doing In crontab file, 0 4 * * * somescript.sh > /some_location/`date '+%m%d%y_%H%M'`.log... (9 Replies)
Discussion started by: grajp002
9 Replies

5. UNIX for Dummies Questions & Answers

Redirect from the Root?

Hello again, What im trying to do is to redirect output from a cmd, from the root, to a file. But i guess thats illegal. I just wanted to know the file size of all files in my system. So: cd / du -k but i need to ouput this information to a 'sysfile.txt' file, or what... (2 Replies)
Discussion started by: oxoxo
2 Replies

6. Shell Programming and Scripting

KSH problem - how do i redirect three times?

i need to output an ls command to a file but also capture any errors from that command and output them to a log file and the screen. if it's only possible to output them to a log file and not the screen then that's fine. this is what i've tried so far, but it won't populate log.txt. i've... (16 Replies)
Discussion started by: mjays
16 Replies

7. Shell Programming and Scripting

Redirect Problem

I am using the time command in a script however the output of the time command will display on my screen but not my output file. Any Ideas on how to fix this? > cat test.sh ############################# #!/usr/bin/sh for COMMAND in pwd do time ${COMMAND} done | sed "s/^/ ... (4 Replies)
Discussion started by: 2dumb
4 Replies

8. UNIX for Advanced & Expert Users

problem with redirect stdout to file

Hi all hope you can help as I am going MAD!!! :eek: The below is in a shell script but the redirection in the sed line does not work and outputs to the screen and the $fname_2 does note get created ????? Can any one help ?? #!/bin/ksh cd /app/ for fname in `ls -1 X*` do sed 1d $fname... (3 Replies)
Discussion started by: mlucas
3 Replies

9. Shell Programming and Scripting

Redirect question

Hi, I need some help to achive the follwoing task: I have a file named test that contain the following line: 'Hellow world','good morning' I want to attach the content of this file to a variable named var , and then rediarect it to a second file bamed test_new. The result should look like... (2 Replies)
Discussion started by: yoavbe
2 Replies

10. IP Networking

Redirect

I'm sittig behind a firewall that doesn't allow ftp. I have a conection to a UNIX system, connecting throug SSH. Is it possible to redirect the ftp through the UNIX to my computer? (1 Reply)
Discussion started by: <Therapy>
1 Replies
Login or Register to Ask a Question