leer la respuesta no funciona en el script ssh bash -s

leer la respuesta no funciona en el script ssh bash -s

Tengo algunos comandos para solicitar una respuesta de sí o no en mi script, pero el comando de lectura de respuesta (modo interactivo) no funciona mientras ejecuto el script usando ssh bash -s script.

ssh user@hostname bash -s < "/home/xxxx/devstop.sh"

no genera la pregunta desde el shell remoto y sale al shell de origen.

Mi guión:

if [ "$count" -eq "0" ]
then
        echo -e "${GREEN}Tomcat Server stopped successfully on '$HOSTNAME' ${NC}"
elif [ $count -gt "0" ]
then 
        echo -e "${RED}Tomcat Server not stopped on '$HOSTNAME' please check it ${NC}"
        echo "Do you want to continue all the tomcat server shutdown process in -`date` "
echo "          Please Read the Above and Enter (Y/N) to Proceed or Stop to cancel shutdown processes :  \c"
read answer

value=`echo ${answer} | tr -s '[:lower:]' '[:upper:]'`

if [ "$value" = "Y" ]
then
        echo "                             Remaining tomcat Services are going down."
else
        echo "                             Cancelled tomcat Services shutdown process in '$HOSTNAME."
        exit 1;
fi

fi

ps -ef|grep tomcat|grep -v grep |grep -i "catalina.startup.Bootstrap start"

exit

Respuesta1

Los readtrabajos. Pero diferente a lo que piensas.

ssh user@hostname bash -s < "/home/xxxx/devstop.sh"

Esto le indica ssh user@hostname bash -sque obtenga su entrada estándar del archivo devstop.sh. Entonces, cuando se trata de tu

read answer

Tomará la siguiente línea de stdin como entrada para el archivo read. En su secuencia de comandos, esta es una línea vacía. Debido a la línea vacía, su respuesta estará vacía.

Puedes probar esto localmente:

$ cat <<EOF >it
read a
echo $a
echo $a
EOF
$ bash it
q
q
q
$ bash < it
echo $a

La primera qes la entrada del teclado.

información relacionada