system('wsl sudo ...') does not work

Hi, i'm trying to write a script that executes a few command through wsl on Windows (basically to automatic install libraries from apt and a c++ routine with ./configure and make).
When I use command such as
system('wsl ./configure')
it goes well, but when I use some like
system('wsl sudo apt-get install')
the script runs but never ends (I see always the "pause" button).
Any suggestions on how to fix this? Thanks

4 comentarios

Rik
Rik el 15 de Jun. de 2022
You should make sure your system calls avoid interacting with the user. You should also treat each call to system as a different shell (so don't use cd in one and assume that folder in a second call).
I suspect the first one is biting you here.
Francesco Bellelli
Francesco Bellelli el 15 de Jun. de 2022
This only occur when I use wsl. In fact, when I run the same script in unix systems it allows me to insert the root password.
So how can I use “sudo” commands in wsl/how can I allow the user to insert the password and then pass to the system command directly it?
Rik
Rik el 16 de Jun. de 2022
The double layer is apparently a problem. Could there be a way to pipe the password in somehow? That would require you to store the password in a Matlab variable, but I don't really see a way around that myself. (you can use the input function if you don't want to store the password in plain text in your m file)

Iniciar sesión para comentar.

Respuestas (1)

Francesco Bellelli
Francesco Bellelli el 16 de Jun. de 2022
It seems to work now by taking as input from the user his password and then using
system(wsl echo <password> | wsl sudo -S <command>)

Categorías

Más información sobre Startup and Shutdown en Centro de ayuda y File Exchange.

Productos

Versión

R2022a

Etiquetas

Preguntada:

el 15 de Jun. de 2022

Respondida:

el 16 de Jun. de 2022

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by