Ftp sous shell

Bonjour,
j'ai un script shell, pour une transaction ftp qui fait ça:

if [ $mavariable -eq $cekejeveux ]
then
ftp machine 21 <<-EOF
cd "rep"
binary
dir
quit
EOF
else
#The -EOF is there to remove the tabs
ftp machine 21 <<-EOF
cd "rep"
binary
dir
quit
EOF
fi

mais il me renvoie cette erreur:
./ftp[5]: syntax error at line 8 : `<<' unmatched
Je sais qu'il s'agit normalement d'un problème de tabulations...
Quelqu'un a une idée?
Merci d'avance
Configuration: Windows 2000
Firefox 1.5.0.4

5 réponses

  1. Contributeur
    -EOF: le - est de trop ou il manque à la ligne EOF
    ftp machine 21 <<EOF
    ...
    EOF
    1. ben justement, le [-] est là pour ne pas prendre en compte la tabulation normalement, non?
      1. Contributeur
        ne serait-ce pas <<- ?
        The format of here-documents is:
        ...
        <<[-]word
                here-document
        delimiter
        ....
        
        If the redirection operator is `<<-', then all leading tab characters are stripped from input lines and the line containing delimiter. This allows here-documents within shell scripts to be indented in a natural fashion. 
        1. tu sous-entenderais donc :

          if [ $mavariable -eq $sketuveux ]
          then
          #The -EOF is there to remove the tabs
          <<-EOF
          ftp machine 21
          cd "rep"
          binary
          dir
          quit
          EOF
          else
          #The -EOF is there to remove the tabs
          <<-EOF
          ftp machine 21
          cd "rep"
          binary
          dir
          quit
          EOF

          J'ai essayé, mais rien, on dirait kil prend pas en compte la commande
          1. Contributeur
            non, j'avais mal lu. Et comme ça:
            ftp machine 21 <<- EOF # avec un espace après -