es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo pasar ‘yes’ en un comando de Python dentro de una sesión de tmux.

Tengo el siguiente script de bash, que ejecuta un script de Python en la sesión de tmux. El script solicita dos respuestas y/n.

#!/bin/sh
tmux new-session -d -s new_session 'python3 build.py /data/build/'

Intenté el siguiente código para pasar ‘y’ cada vez, pero no funcionó cuando se ejecutó en la sesión de tmux.

python3 build.py -y /data/build/

¿Cómo se puede hacer lo mismo en tmux?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para pasar la respuesta ‘y’ en una sesión de tmux mientras se ejecuta el script de Python, puedes utilizar el comando expect. En tu script de bash, reemplaza el comando tmux existente con lo siguiente:

    #!/bin/sh 
    tmux new-session -d -s new_session 'expect -c "spawn python3 build.py /data/build/; expect {\"y/n\" {send \"y\n\"; exp_continue}};"'
    

    Este comando iniciará el script de Python en la sesión de tmux y utilizará el comando expect para responder automáticamente con ‘y’ cuando se le solicite. El comando expect espera a que aparezca la cadena ‘y/n’ en la salida del script, luego envía ‘y’ y continúa esperando otra solicitud ‘y/n’.

    Con esta modificación, deberías ser capaz de ejecutar el script de bash en la sesión de tmux y hacer que responda automáticamente con ‘y’ cuando sea solicitado por el script de Python.

Comments are closed.