bhe! se vuoi una cosa davvero zozza, ma funzionante potresti creare uno script expect da codice, renderlo eseguibile e lanciarlo....
sono daccordo che non è elegante, ma quando devi avere a che fare con la shell l'eleganza non conta molto, secondo me conta l'efficenza...
esempio:per scaricare via scp dei brani che ho sul server MPD in una "mdpstation"
hFile = Open TmpScript For Output Create
Print #hFile, "#!/usr/bin/expect"
Print #hFile, "set Sorg " & Quote(Track)
Print #hFile, "set Dest " & Quote(Dest)
Print #hFile, "set timeout " & Quote("-1")
Print #hFile, "set Pass " & Quote(SshPass)
Print #hFile, "spawn /usr/bin/scp -P " & SshPort & " " & SshUser & "@" & Host & ":$Sorg $Dest"
Print #hFile, "expect {"
Print #hFile, "password: {send " & Quote("$Pass\r") & "; exp_continue}"
Print #hFile, "}"
hFile.Close
Shell "chmod +x " & TmpScript Wait
Exec [TmpScript] Wait For Read As "Execution"
ho usato exec as Execution per poter monitorare l'esecuzione dello script... quando lo script ha finito, volendo puoi killare il file che hai creato a run time...
per la password, scriverla in chiaro su di un file non è buona cosa, specie se è quella di root, così come non è bello scriverla nel sorgente... vedi un pochino te cosa ti conviene...
se vuoi visualizzare lo stato di avanzamento del tuo script in Execution_read puoi mettere del codice che ti faccia avanzare una prograssbar o quello che più ti aggrada...
non è elegante, lo ripeto, ma è davvero efficace!