Comando "leer" del usuario mientras ejecuta scripts remotos a través de ssh

Comando "leer" del usuario mientras ejecuta scripts remotos a través de ssh

Déjame explicarte mi situación primero. Tengo un alias en .bashrc:

doscript () { ssh root@server$1 -p2202 "bash -s" < ~/scripts/$2 $3; }

Tengo un script que básicamente consta de varias acciones como:

check current settings
read comment
do actions
write $comment in a file
restart service

Entonces ejecuto un comando

doscript server scriptname parameter

Sin embargo, la parte "leer comentario" no funciona. En lugar de esperar hasta que ingrese el comentario, se ejecuta inmediatamente y no agrega nada al archivo de comentarios.

¿Hay alguna manera de ingresar la variable en ese caso?

Respuesta1

La forma habitual de hacer esto sin cambiar demasiado es copiar el archivo al control remoto y luego ejecutarlo, manteniendo así la entrada estándar disponible para su entrada tty. P.ej

scp -P 2202 ~/scripts/$2 root@server$1:./myscript
ssh -t root@server$1 -p2202 bash ./myscript $3

o si no puede scpreemplazar esa línea por

ssh root@server$1 -p2202 'cat >./myscript' <~/scripts/$2

información relacionada