ssh bash -s 스크립트에서 답변 읽기가 작동하지 않습니다.

ssh bash -s 스크립트에서 답변 읽기가 작동하지 않습니다.

내 스크립트에 예 또는 아니요 응답을 묻는 명령이 있지만 ssh bash -s script.

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

원격 쉘에서 질문을 표시하지 않고 소스 쉘로 종료됩니다.

내 스크립트:

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

답변1

작품 read. 하지만 생각과는 다릅니다.

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

이는 ssh user@hostname bash -s파일에서 표준 입력을 가져오라고 지시합니다 devstop.sh. 그래서 그것이 당신에게 다가올 때

read answer

.stdin의 다음 줄을 입력으로 사용합니다 read. 스크립트에서 이는 빈 줄입니다. 빈 줄로 인해 답변이 비어 있게 됩니다.

이를 로컬에서 테스트할 수 있습니다.

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

첫 번째는 q키보드 입력입니다.

관련 정보