Bon,

ça avance, c'est laborieux mais on va finir par y arriver. Un pas en avant deux en arrière.

Dans une version plus simple de ce même script ci-dessous, la partie SFTP et expect fonctionnait. Mais toute la partie d'analyse avant, non. Maintenant c'est le contraire. La partie d'analyse et praparatoire fonctionne mais plus la partie SFTP/expect.

Je ne sais pas le biais que j'ai introduit dans la partie préparatoire qui fait que ça ne fonctionne plus a partir de la ligne 48.

Je me prends un message d'erreur :
./test5.ksh[38]: syntax error at line 49 : `<' unmatched
Pouvez vous me filer de nouveau un coup de main messieurs ? Voici mon code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#!/bin/ksh
echo "\n"
echo "\n"
echo "*************************************************************************"
echo "*    Bienvenu dans le script de lancement des cubes     *"
echo "*************************************************************************"
echo "\n"
echo "Sélectionnez le ou les cube(s) que vous souhaitez lancer séparé(s) par des ESPACES"
echo "Pour AAAAF tapez F,"
echo "Pour AAAAE tapez E,"
echo "Pour AAAAM tapez M,"
echo "Pour AAAAQ tapez Q,"
echo "Tous les cubes tapez *,"
echo "Une selection de cubes tapez les lettres correspondant de chaque cube"
echo "C'est à vous :"
read RESP
set -A cube $RESP
#toute valeur assignée à la variable i est mise en majuscule
typeset -u i
 
#Si la personne veut alimenter tous les cubes en une fois
#changement de l'assignation de l'utilisateur par les
#suffixes des cubes pour pouvoir boucler dessus
if [ ${cube[0]} == * ]; then 
    echo "Vous voulez lancer tous les cubes ?"
    echo "Confirmez y/n ? :"
    read RESP_CONF
    if [ "$RESP_CONF" = "y" ]||[ "$RESP_CONF" = "Y" ]; then
      set -A cube F E M Q
      #echo "${cube[*]}"
    else
      echo "Veuillez relancer le script"
      exit;
    fi
fi 
##Test si rien n'est renseigné par l'utilisateur
RET_cube=${#cube[*]}
if [ $RET_cube == 0 ]; then
  echo "!!!!!! Veuillez selectionner au moins un cube !!!!!!!\n"
  exit;
else   
  for i in ${cube[@]}
  do
    case "$i" in 
      "F"|"E"|"M"|"Q")
        cd /home/ess_tms/temp/AAAA$i 
 
        #Début du script SFTP sous expect
        /usr/bin/expect <<'EOF'
        set timeout 5
        set USER user
        set PASS datastage
        set HOST mon_host
        #positionnement dans le répertoire source du serveur Informatica où les fichiers sont présents
        set INF_PATH_OUT /sldbfil2/data/mutualise/out/tms/TgtFiles
        spawn sftp $USER@$HOST
        expect password:
        send "$PASS\r"
 
        expect sftp>
        #Positionnement dans le dossier où le fichiers doivent être déposés par le STFP et à partir duquel le .ksh doit être exéxuté
        send "cd $INF_PATH_OUT/AAAA$i\r" 
 
        expect sftp>
        send "get *.txt\r"
 
        expect sftp>
        send "exit\r"
        EOF
 
        rm -f /home/ess_tms/temp/AAAA$i/*.gz
        mv /home/ess_tms/temp/AAAA$i/TMSMDAI.txt /home/ess_tms/temp/AAAA$i/DB_IND.txt ;;
        #etc... avec plein d'autres fichiers 
        #touch creation_ok_$i.txt ;;
      *) 
        echo "VA CHIER" ;;
    esac
  done
fi
exit;
Moi je dis pas, mais pour vous ça vous paraitra simple comme script mais pour un mec qui n'a presque jamais touché à du shell avant, je trouve ca pas mal. Suis pas peu fier.
J'ai bien le doirt de m'envoyer des fleurs, non ?