2009-10-28 3 views
1

텔넷을 통해 서버에 연결하고 일부 권한을 부여하는 expect 스크립트를 만들고 싶습니다. 스크립트 매개 변수 사용에 문제가 있습니다. 사람을 기반으로 나는이 일 것으로 예상 : 예상 인수 처리

#!/usr/bin/expect -f 
spawn telnet $argv1 5038 
... 

불행히도 내가 다시 can't read "argv1": no such variable 얻을. 어떻게이 일을 할 수 있습니까?

+0

어쩌면 serverfault.com – Graviton

+1

에서 물어보십시오 왜? 이것은 expect/tcl 프로그래밍에 관한 질문입니다. – viraptor

답변

4

$argv 명령 줄 매개 변수를 들고 Tcl의 목록이며, 0부터 시작, 색인 당신이 원하는 :

[lindex $argv 0] 
+1

당신은 2 분을 이겼습니다 :) 고마워요. 사람에게 $ argv0을 언급하는 예제가 있는데, 그것은 나를 혼란스럽게 만든다. – viraptor

+0

그래서 나는 (이 예제로 혼란 스러웠다) –

5

Section 명령 행 인수가 변수 ARGV에 목록으로 제공됩니다, 당신은 요소를 얻을 LINDEX을 사용할 수 있습니다

spawn telnet [lindex $argv 0] 5038 

ShellsLINDEX에 쉘 제공 변수를 참조하십시오 :이 목록에서, 첫 번째 인수에 텔넷하는 호스트 인 경우 그렇게 in Lists

0

proc에서 $ argv0을 사용하려고 시도했을 때 유사한 오류 can't read "argv0": no such variable가 발생했습니다. 해결책은 $::argv0을 사용하여 전역 네임 스페이스에서 명시 적으로 액세스하는 것입니다.