2010-03-27 3 views
0

Le script ci-dessous a fonctionné sur Mac OS X. J'utilise maintenant Ubuntu OS, et le script ne fonctionne plus. Je me demande s'il y a quelque chose que je dois changer ici? J'ai changé la première ligne de #!/Bin/bash à #!/Bin/sh, mais cela génère toujours une erreur ... Essentiellement, j'obtiens une erreur lorsque j'essaie de l'exécuter:script shell a cessé de fonctionner --- besoin de réécrire?

Syntax error: end of file unexpected (expecting ")") 

#!/bin/sh 
REMOTE='ftp.example.com' 
USER='USERNAME' 
PASSWORD='PASSWORD' 
CMDFILE='/jtmp/rc.ftp' 
FTPLOG='/jtmp/ftplog' 
PATTERN='SampFile*' 

date > $FTPLOG 
rm $CMDFILE 2>/dev/null 

LISTING=$(ftp -in $REMOTE <<EOF 
user $USER $PASSWORD 
cd download 
ls $PATTERN 
quit 
EOF) 

echo "open $REMOTE" >> $CMDFILE 
echo "user $USER $PASSWORD" >> $CMDFILE 
echo "verbose" >> $CMDFILE 
echo "bin" >> $CMDFILE 
echo "cd download" >> $CMDFILE 
for FILE in $LISTING 
    do 
    echo "get $FILE" >> $CMDFILE 
    done 
echo "quit" >> $CMDFILE 

    ftp -in < $CMDFILE >> $FTPLOG 2>&1 

rm $CMDFILE 

EDIT

Je tournai mis -v et mis -x sur et il semble que ça ne fonctionne pas ... la liste Toute idée pourquoi?

REMOTE='ftp.example.com' 
+ REMOTE=ftp.example.com 
USER='USERNAME' 
+ USER=USERNAME 
PASSWORD='PASSWORD' 
+ PASSWORD=PASSWORD 
CMDFILE='/jtmp/rc.ftp' 
+ CMDFILE=/jtmp/rc.ftp 
FTPLOG='/jtmp/ftplog' 
+ FTPLOG=/jtmp/ftplog 
PATTERN='SampFile*' 
+ PATTERN=SampFile* 

date > $FTPLOG 
+ date 
rm $CMDFILE 2>/dev/null 
+ rm /jtmp/rc.ftp 

LISTING=$(ftp -in $REMOTE <<EOF 
user $USER $PASSWORD 
cd download 
ls $PATTERN 
quit 
EOF) 

echo "open $REMOTE" >> $CMDFILE 
echo "user $USER $PASSWORD" >> $CMDFILE 
echo "verbose" >> $CMDFILE 
echo "bin" >> $CMDFILE 
echo "cd download" >> $CMDFILE 
for FILE in $LISTING 
    do 
    echo "get $FILE" >> $CMDFILE 
    done 
echo "quit" >> $CMDFILE 

    ftp -in < $CMDFILE >> $FTPLOG 2>&1 

rm $CMDFILE./inFullRefresh.sh: 34: Syntax error: end of file unexpected (expecting ")") 

Répondre

1

Je pense que <<EOF rend chercher EOF sur une ligne par lui-même, et EOF) comte ne marche pas. Essayez de changer

EOF) 

à

EOF 
) 
+0

oui ... compris cela juste avant ... Merci a publié ce billet si :) – OopsForgotMyOtherUserName

Questions connexes