Help! Problem with Shell Script.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help! Problem with Shell Script.
# 1  
Old 05-23-2006
Help! Problem with Shell Script.

hi! i have the script which i hit error. anyone knows whats wrong? i have been trying for the last 3 days and don't seems to be able to find an answer.

the error i got was sp_out.sh[34]: syntax error at line 51 : `<<' unmatched. However when i move the FTP portion of the script out of the If condition, it works. The script as follows.


Quote:
#!/bin/ksh

# Singpost Automated Script - Out Script (eStudent to Singpost)
#
# To login into Singpost Internet Server to deposit the daily
# oustanding balance list genereated from eStudent.
#
# FTP the files from eStudent App Server to Singpost
# production directory: /opt2/saprd/sa76/saobjects/sf/sam
#

SERVERHOST=XXX.XXX.XXX.X

# eStudent Path
#ESTUDENT_PATH=/opt2/saprd/sa76/saobjects/sf/sam
#ESTUDENT_BACKUP_PATH=/opt2/saprd/sa76/saobjects/sf/sam/backup
ESTUDENT_PATH=/opt2/sadvl/orasadvl/sa76/saobjects/sf/sam
ESTUDENT_BACKUP_PATH=/opt2/sadvl/orasadvl/sa76/saobjects/sf/sam/backup

YYYY_DATE=$(date +%Y)
JULIAN_DATE=`expr $(date +%j) - 1`
ESTUDENT_FILENAME="ITEBAT1_ITL0100.${JULIAN_DATE}"
SINGPOST_FILENAME="ITL0100.${JULIAN_DATE}"
LOG_FILENAME="${ESTUDENT_PATH}/sp_log/sp_out_ftp_${YYYY_DATE}${JULIAN_DATE}.log"

cd $ESTUDENT_PATH

echo "Singpost FTP Script - $(date)" > "${LOG_FILENAME}"
echo "UPLOAD/PUT $SINGPOST_FILENAME" >> "${LOG_FILENAME}"

if [ ! -f "${ESTUDENT_PATH}/${ESTUDENT_FILENAME}" ]
then
echo "ERROR! Outgoing file not found ${ESTUDENT_PATH}/${ESTUDENT_FILENAME}." >> "${LOG_FILENAME}"
else
if [ ! -d "${ESTUDENT_PATH}/sp_out_archive" ]
then
echo "ERROR! Directory ${ESTUDENT_PATH}/sp_out_archive missing." >> "${LOG_FILENAME}"
else
echo "Create backup copy ${ESTUDENT_PATH}/sp_out_archive/${ESTUDENT_FILENAME}." >> "${LOG_FILENAME}"
cp "${ESTUDENT_PATH}/${ESTUDENT_FILENAME}" "${ESTUDENT_PATH}/sp_out_archive/${ESTUDENT_FILENAME}"

echo "Rename filename ${ESTUDENT_FILENAME} to ${ESTUDENT_PATH}/${SINGPOST_FILENAME}." >> "${LOG_FILENAME}"
mv -f "${ESTUDENT_PATH}/${ESTUDENT_FILENAME}" "${ESTUDENT_PATH}/${SINGPOST_FILENAME}"

ACCT=TEST;export ACCT
PASS=TEST123;export PASS

echo "Trying to connect to machine ${SERVERHOST}" >> "${LOG_FILENAME}"
# run FTP and create a FTP log file

ftp -nv $SERVERHOST >> "${LOG_FILENAME}" <<-EOF
user $ACCT $PASS
ascii
put "${ESTUDENT_PATH}/$SINGPOST_FILENAME"
bye
EOF
rm "${ESTUDENT_PATH}/$SINGPOST_FILENAME"
fi
fi
# 2  
Old 05-23-2006
Hi , did you try:

Code:
ftp -nv $SERVERHOST <<-EOF >> "${LOG_FILENAME}"

# 3  
Old 05-23-2006
tried that but still dun work Smilie
# 4  
Old 05-23-2006
It should work.. try this
Code:
ftp -nv $SERVERHOST >> "${LOG_FILENAME}" <<EOF
user $ACCT $PASS
ascii
put "${ESTUDENT_PATH}/$SINGPOST_FILENAME" 
bye 
EOF

# 5  
Old 05-23-2006
nope...it still dun work...same error message...

could it be something wrong with my if-else-fi statements?
# 6  
Old 05-24-2006
Try this:
Code:
!/bin/ksh

# Singpost Automated Script - Out Script (eStudent to Singpost)
#
# To login into Singpost Internet Server to deposit the daily
# oustanding balance list genereated from eStudent.
#
# FTP the files from eStudent App Server to Singpost
# production directory: /opt2/saprd/sa76/saobjects/sf/sam
#

SERVERHOST=XXX.XXX.XXX.X

# eStudent Path
#ESTUDENT_PATH=/opt2/saprd/sa76/saobjects/sf/sam
#ESTUDENT_BACKUP_PATH=/opt2/saprd/sa76/saobjects/sf/sam/backup
ESTUDENT_PATH=/opt2/sadvl/orasadvl/sa76/saobjects/sf/sam
ESTUDENT_BACKUP_PATH=/opt2/sadvl/orasadvl/sa76/saobjects/sf/sam/backup

YYYY_DATE=$(date +%Y)
JULIAN_DATE=`expr $(date +%j) - 1`
ESTUDENT_FILENAME="ITEBAT1_ITL0100.${JULIAN_DATE}"
SINGPOST_FILENAME="ITL0100.${JULIAN_DATE}"
LOG_FILENAME="${ESTUDENT_PATH}/sp_log/sp_out_ftp_${YYYY_DATE}${JULIAN_DATE}.log"

cd $ESTUDENT_PATH

echo "Singpost FTP Script - $(date)" > "${LOG_FILENAME}"
echo "UPLOAD/PUT $SINGPOST_FILENAME" >> "${LOG_FILENAME}"

if [ ! -f "${ESTUDENT_PATH}/${ESTUDENT_FILENAME}" ]
then
echo "ERROR! Outgoing file not found ${ESTUDENT_PATH}/${ESTUDENT_FILENAME}." >> "${LOG_FILENAME}"
else
if [ ! -d "${ESTUDENT_PATH}/sp_out_archive" ]
then
echo "ERROR! Directory ${ESTUDENT_PATH}/sp_out_archive missing." >> "${LOG_FILENAME}"
else
echo "Create backup copy ${ESTUDENT_PATH}/sp_out_archive/${ESTUDENT_FILENAME}." >> "${LOG_FILENAME}"
cp "${ESTUDENT_PATH}/${ESTUDENT_FILENAME}" "${ESTUDENT_PATH}/sp_out_archive/${ESTUDENT_FILENAME}"

echo "Rename filename ${ESTUDENT_FILENAME} to ${ESTUDENT_PATH}/${SINGPOST_FILENAME}." >> "${LOG_FILENAME}"
mv -f "${ESTUDENT_PATH}/${ESTUDENT_FILENAME}" "${ESTUDENT_PATH}/${SINGPOST_FILENAME}"

ACCT=TEST;export ACCT
PASS=TEST123;export PASS

echo "Trying to connect to machine ${SERVERHOST}" >> "${LOG_FILENAME}"
# run FTP and create a FTP log file
{ #Subshell here
ftp -nv $SERVERHOST >> "${LOG_FILENAME}" <<-EOF
user $ACCT $PASS
ascii
put "${ESTUDENT_PATH}/$SINGPOST_FILENAME"
bye
EOF
}
rm "${ESTUDENT_PATH}/$SINGPOST_FILENAME"
fi
fi

# 7  
Old 05-25-2006
Any chance you have white space left of EOF?

When you move the ftp section into the "if" do you have any indenting? <<- will strip leading tabs only, not spaces. Better to have EOF always at the left edge.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell script newbie, what is problem with my script?

Hello, Ubuntu server 11.10 can anybody help what is problem with my shell script? #!/bin/bash #script to find out currently logged on user is root or not. if ] then echo "You are super" else echo "You are awesome!" fi When I run script, I get following output ./uid: line 3: I... (4 Replies)
Discussion started by: kaustubh
4 Replies

2. Shell Programming and Scripting

problem in shell script

hi every body this is my first thread in this forum, i hope find a solution for my problem i have to write a script bt i still have some error and i don't know how to correct them $ for i in `seq 500 505`; do ./generateur_tache $i tache$i.txt; nprocs=$i; copt$i=`cat tache$i.txt | ./copt.awk` ;... (10 Replies)
Discussion started by: ordo_ordo
10 Replies

3. AIX

There's problem with shell script...Help me~

Hello, guys... I'm new to IBM AIX server admin. Actuall, I administrate Oracle 10g on it. *SYSTEM INFO - IBM AIX 6 Powerpc - Oracle 10g R2 (10.2.0.4.0 - 64bit) I wrote a script like bellow... DATE='date' cp /oracle/product/10g/network/log/listener_temp.log... (4 Replies)
Discussion started by: daniel han
4 Replies

4. Shell Programming and Scripting

Shell script problem

Hello. I am trying to make this shell script bellow work on my server wich should take the names in newacc.cvs and add them to the system. For each user the script should ask me to enter a password for the user im adding and then add them to the system, however my current solution do not work atm... (7 Replies)
Discussion started by: ryzzaze
7 Replies

5. Shell Programming and Scripting

Problem Shell Script

hy, i have a problem with shell script with sybase. if start single command this script working, but if run into file for example select.sh, the script doesn't create output. Can you help me please ??? thank's USER=`cat $SYBASE/.asepwd | cut -d: -f2 | head -1` PWD=`asepwd.sh $USER... (4 Replies)
Discussion started by: Dolcissimo76
4 Replies

6. Shell Programming and Scripting

call shell script from perl cgi script problem

hi,, i have perl scipt with line : system('./try.sh $t $d $m'); in shell scipt try.sh i have the line: echo $1 its not printing value of $t that i hav passed..y is it so..i am running it from apache web server (2 Replies)
Discussion started by: raksha.s
2 Replies

7. Shell Programming and Scripting

Problem in shell script

:confused: Hi, I have written a script which calls a stored procrdure. The Stored procedure has 2 inputs and 6 outputs. I need to capture one of the outputs. But I am not able to get any result from this simple script- ! /bin/ksh echo "connect to dbau user etlbitst using anf1892;" >... (1 Reply)
Discussion started by: arnie_nits
1 Replies

8. UNIX for Dummies Questions & Answers

Shell script problem

Hi, I have a shell script in which I am calling a function from a different shell script. This functions executes the SQL and the results are stored in a log file. If the result of the SQL is "no rows selected" then I need to exit the main shell script. My shell script is executing fine if... (5 Replies)
Discussion started by: shashi_kiran_v
5 Replies

9. Shell Programming and Scripting

shell script problem

shell script for sorting,searchingand insertion/deletion of elements in a list (1 Reply)
Discussion started by: jayaram_miryabb
1 Replies
Login or Register to Ask a Question