Comment passer et lire une variable Shell dans un expect ?
Bonjour,
je lance dans mon script shell un expect pour faire du SFTP.
J'utilise dans cet expect une variable shell mais une fois dans l'expect elle n'est plus reconnue. Le message
Citation:
sftp> cd /sldbfil2/data/mutualise/out/tms/TgtFiles/JTMSi
Couldn't canonicalise: No such file or directory
Ici c'est le "i" de JTMSi qui devrait être remplacé par la valeur de la variable $i, "F" en l'occurence.
Voici le script :
Code:
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
| else
for i in ${cube[@]}
do
case "$i" in
"F"|"E"|"M"|"Q")
cd /home/ess_tms/temp/JTMS$i
#Début du script SFTP sous expect
/usr/bin/expect <<'EOF'
set timeout 5
set USER user
set PASS datastage
set HOST 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/JTMSi\r"
expect sftp>
send "get *.txt\r"
expect sftp>
send "exit\r"
EOF
rm -f /home/ess_tms/temp/JTMS$i/*.gz
mv /home/ess_tms/temp/JTMS$i/TMSMDAI.txt /home/ess_tms/temp/JTMS$i/DB_IND.txt |
C'est ligne 22 que ça plante.
Savez vous dans ce cas somment faire pour que dans mon expect il lise bien la valeur de "$i" définie plus haut dans le shell ?
J'ai lu quelque part un truc comme
mais j'ai essayé et çà fonctionne pas. Peut être je l'utilise mal aussi ?
Merci !