theIp=""
#1
echo $theIp | while read ip; do
ssh -tt root@$ip
exit
done
#2
while read ip; do
ssh root@$ip
exit
done < <(echo $theIp)
#3
while true; do
ssh root@$theIp
exit
done
위의 3 가지 방법은 while 문에서 모든 호스트를 연결하지만 마지막 호스트 만 성공했습니다. 왜 처음 두 개는 아무것도하지 않습니까?
ssh
루프의 입력을 먹었습니다. 아마도이 경우 ssh
EOF를 받으면 세션이 종료됩니다. 그럴 가능성이 있지만 일부 입력으로 인해 종료 될 수도 있습니다. 다음을 지정 < /dev/null
하거나 사용 하여 입력을 리디렉션해야 합니다 -n
.
ssh -n "root@$ip"
ssh "root@$ip" < /dev/null
그것은 또한 -tt
어떻게 든 독립적이기 때문에 적용될 수 있습니다 . 단지 시도.
를 지원하는 Bash 또는 유사한 셸을 read -u
사용하는 경우 fd
파일에 대해 다른 값 을 지정할 수도 있습니다.
while read -u 4 ip; do
ssh root@$ip
exit
done 4< <(echo $theIp)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다