호스트에 텔넷 프로세스를 생성합니다. 내가 명령을 보내면, 무언가가 이 될 것으로 기대한다. 이것은 잠시 동안 계속됩니다. 그러나이 어딘가에있는 상호 작용 중에 호스트에 대한 연결이 신비하게 손실되고 내 스크립트가 생성되어 (현재 죽은) 텔넷 프로세스에 "보내려는"동안 스크립트가 죽습니다. 스폰 ID와 명령어 을 인수로 보내는 절차를 작성하고 싶습니다. 내가 명령을 "보내기"전에 스폰 시스템 ID가 존재하는지 확인하고 싶습니다. (프로그램과 호스트 사이의 연결이 존재합니다) . 그렇지 않으면 나가고 싶습니다. 이 같은 뭔가 :살아있는 spawn_id는 어떻게 확인합니까? (TCL)
proc Send {cmd sid} {
if { $sid is not dead yet } { ;## don't know how to do this
part
send -i $sid "$cmd\r"
} else {
puts "channel id: $sid does not exist anymore. Exiting"
exit
}
}
그래,이 같은 캐치를 사용하고을 지금 현재의 방법을 잘못. 하지만 여기에 나와 싶지 않아 .. 만약 spawn_id가 살아 있지 않다면 같은 서버에 다른 텔넷 세션을 다시 열고 명령을 보내고 싶습니다. – Tanuj
@ Tanuj 간단한 "불평 및 퇴장"대신에 다시 연결 하시겠습니까? 그래서 당신은 그 코드에서'puts'와'exit'를 재접속으로 대체 한 다음 명령을 다시'send'하려고 시도합니다. 당신은 이제'sid'에 대한 외부 세계의 지식도 바꿔야 만합니다 ... 아주 지저분 해지기 시작했습니다. 인터페이스의 불완전한 인수 분해가있는 것처럼 보입니다. –
참고 : 위의 "if"문에 "args :가"proc name args body "오류가되어야하는 추가"} "가 있습니다. StackOverflow, 그것은 무한한 지혜로 인해 원판 답을 1 자로 편집 할 수 없습니다. –