예상 스크립트에 가변 개수의 인수를 전달하고 싶습니다.
#!/usr/bin/expect
set timeout 10
spawn ssh -o "StrictHostKeyChecking no" [lindex $argv 0]@[lindex $argv 2]
expect "password: "
send "[lindex $argv 1]\n"
expect "$ "
for {set i 1} {$i < [llength $argv]} {incr i 1} {
send { echo $i }
}
난 갖길 원해
1
2
3
하지만 대신 나는 얻는다
echo $i
echo $i
답변1
Tcl에는 두 가지 유형의 문자열 따옴표가 있습니다. 보간이 발생하는 큰 따옴표 $variable
(값으로 대체)와 거의 아무것도 변경되지 않는 중괄호입니다. 따라서 에서 send { echo $i }
명령에 전달된 문자열 send
은 입니다 echo $i
. 반대로 1이면 문자열 (및 개행)이 send "echo $i\n"
전달되는 식입니다.echo 1
i