Problema su script

2 risposte [Ultimo contenuto]
Ritratto di Jacobbe73
Jacobbe73
(Geek)
Offline
Geek
Iscritto: 19/04/2013
Messaggi: 65

Ciao a tutti,
grazie a questo forum un pò di tempo fa avevo creato uno script per gestire un comando schedulato (tramite cron) da un mio pc ad un'altro pc in casa mia.
Questo lo script in questione:

#!/usr/bin/expect
set timeout 55
spawn telnet 192.168.1.130
expect "login:"
send root\r
expect "Password:"
send Pippo654321\r
send "sleep 2\r"
send "wget -O /etc/personale/aggiorna.sh "http://xxxxxx:11500/get.php?username=Pippo&password=1234567&type" && chmod 777 /etc/personale/aggiorna.sh && /etc/personale/aggiorna.sh\r"
send "sleep 2\r"
send "exit\r"
expect eof
exit

Allora cosa non mi funziona esattamente?
se entro in telnet nella macchina client (192.168.1.130) e lancio il seguente comando funziona tutto regolarmente:
wget -O /etc/personale/aggiorna.sh "http://xxxxxx:11500/get.php?username=Pippo&password=1234567&type" && chmod 777 /etc/personale/aggiorna.sh && /etc/personale/aggiorna.sh

ovviamente avendolo messo dentro uno script che viene eseguito automaticamente dal cron di un'altro pc ho dovuto inserire le virgolette prima del wget e alla fine dopo il \r che da l'invio ma il comando non funziona. Come posso lanciare in automatico da uno script quella stringa? è come se le doppie virgolette inserite due volte entrassero in conflitto.
spero di aver specificato chiaramente il mio problema.
Ogni suggerimento in merito è ben accetto, saluti e grazie!!
Jacobbe

Ritratto di badroot
badroot
(Guru)
Offline
Guru
Iscritto: 22/08/2008
Messaggi: 2059

Ciao,
il problema come ha intuito è nell'uso delle virgolette, se vuoi inviare il carattere '"' devi farne l'escape.

send "wget -O /etc/personale/aggiorna.sh \"http://xxxxxx:11500/get.php?username=Pippo&password=1234567&type\" && chmod 777 /etc/personale/aggiorna.sh && /etc/personale/aggiorna.sh\r"

in pratica devi indicare \".
Puoi usare anche questa sintassi, se la ritieni più leggibile :

send {wget -O /etc/personale/aggiorna.sh "http://xxxxxx:11500/get.php?username=Pippo&password=1234567&type" && chmod 777 /etc/personale/aggiorna.sh && /etc/personale/aggiorna.sh\r}

Ritratto di Jacobbe73
Jacobbe73
(Geek)
Offline
Geek
Iscritto: 19/04/2013
Messaggi: 65

Caro Badroot,
non è la prima volta che mi aiuti e risolvi i miei problemi...
grazie mille per la tua preziosa e tempestiva risposta, ovviamente tutto apposto Wink
Grazie 1000
Jacobbe73