me ha surgido un problema "tonto" pero que no consigo resolver,mi situación es la siguiente:
La siguiente linea de código que lo que hace es ejecutar un script pasandole como parametros la direccion ip,el usuario y su contraseña
exec('sudo datos.sh 192.168.80.100 root root', $disco, $status);
y despues de guarda en un fichero:
file_put_contents($direccion, join("\n", $disco));
y el script es así:
#!/bin/bash
CMD="ls"
VAR=$(expect -c "
spawn ssh -o StrictHostKeyChecking=no $2@$1 $CMD //se le pasa el 1er y 2º parametro
match_max 100000
expect "*?assword:*"
send -- "$3" //se le pasa el 3er parametro
send -- "r"
expect eof
")
echo "==============="
echo "$VAR"
Pues bien,lo que quiero es poder pasar en vez de esos parámetros escritos tal cual,pasar variables como por ejemplo:
exec('sudo datos.sh $a $b $c', $disco, $status);
Pero no consigo que funcione,no se porque pero sólo me funciona si esta todo escrito literalmente

Sólo me funciona si uso system en vez de exec pero con system solo consigo guardar la última línea.
Espero vuestras ideas porque llevo 2 horas con esto y no lo logro solucionar :(
Un saludo y muchas gracias