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
Ici c'est le "i" de JTMSi qui devrait être remplacé par la valeur de la variable $i, "F" en l'occurence.sftp> cd /sldbfil2/data/mutualise/out/tms/TgtFiles/JTMSi
Couldn't canonicalise: No such file or directory
Voici le script :
C'est ligne 22 que ça plante.
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 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
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 ?in the expect script:
replace $HOSTNAME with $env(HOSTNAME)
http://www.linuxmisc.com/12-unix-she...7163351024.htm
Merci !
Partager