Eli joo. Virittelen esimerkin mukaista bash-skriptiä.
Homman tulisi toimia näin:
Bashissa asetetaan joukko muuttujia. Sen jälkeen bash käynnistää inline-expectin.
Expect käyttää bashin muuttujia. Virheen sattuessa expect asettaa EXIT_CODE muuttujan arvoksi 1, ja ohjelman suoritus palaa bash-skriptille.
Bashin tulisi saada EXIT_CODEN arvo.
Ongelmana on se, että expectin asettama EXIT_CODE ei näy bashille. Kuinka siis expectissä välitetään (tai luodaan) muuttuja ja sen arvo takaisin bashille
Ei meinaa löytyä millään vastausta tuohon...
#!/bin/bash
TARGET_ADDRESS="localhost"
EXIT_CODE="0"
#Expect koodi alkaa:
/usr/bin/expect -- << EndMark
spawn bash
send -- "ftp $TARGET_ADDRESS\r"
expect {
"Connection refused" {
puts "FAILED : FTP - Connection to $TARGET_ADDRESS refused.\r"
set EXIT_CODE 1
exit
}
}
EndMark
#Expect-koodi loppuu
if [ "$EXIT_CODE" = "1" ]; then
echo " :File transfer failed"
...
...
else
......
......
fi