예상되는 변수 인수를 전달하는 방법

예상되는 변수 인수를 전달하는 방법

예상 스크립트에 가변 개수의 인수를 전달하고 싶습니다.

#!/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 1i

관련 정보