0 votes

Script shell a cessé de fonctionner --- besoin de le réécrire?

Le script ci-dessous a fonctionné sur mon Mac OS X. Maintenant, j'utilise 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 il continue de renvoyer une erreur.... Essentiellement, j'obtiens une erreur lorsque j'essaie de l'exécuter :

Erreur de syntaxe: fin de fichier inattendue (attente de ")")

#!/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 <> $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

ÉDITER

J'ai activé set -v et set -x et il semble que le LISTING ne s'exécute pas... Une 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 <> $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: Erreur de syntaxe: fin de fichier inattendue (attente de ")")

1voto

Teddy Points 3250

Je pense que < fait en sorte qu'il recherche `EOF` sur une ligne à part, et que `EOF )` ne compte pas. Essayez de changer

`EOF )

pour

EOF
)`

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X