기대되는 긴 명령을 전달할 수 있기를 원합니다. 그것은 어쨌든 다중 명령입니다.EXPECT가 이스케이프 된 문자를 명령 문자로 해석하는 방법
./expectscript "mkdir /usr/local/dir1\ncd /usr/local/dir1\ntouch testfile"
공지 사항 난에 "\ n"넣어 나는를 처리하고있어 것처럼 ENTER를 시작합니다 : 우선 여기 내 나는 다음과 같은 그래서이 스크립트를 실행 할
#!/usr/bin/expect -f
set timeout -1
spawn telnet xxx.xxx.xxx.xxx
expect "*?username:*"
send "someusername\r"
expect "*?assword:*"
send "somepassword\r"
# Here's the command I'd like to pass from the command prompt
set command [lindex $argv 0]
send "$command\r"
send "exit\r"
스크립트가 예상입니다 명령을 사용하여 다음으로 이동하십시오.
";"로 명령을 구분할 수 있지만이 특정 연습에서는 "\ r"을 "\ n"으로 해석하여 기대할 수 있기를 기대합니다.
send "mkdir /usr/local/dir1\r"
send "cd /usr/local/dir1\r"
send "touch testfile\r"
"\ n"을 "\ r"로 해석하는 방법에 대한 질문은 어떻게됩니까? "\ r"을 "\ n"대신 인수에 넣으려고 시도했지만 작동하지 않습니다.
감사합니다. 나는 간단한 실험을 수행 할 때
우리가 리터럴 백 슬래시 -n과 일치하기를 원하기 때문에 정규 표현식의'{\\ n} '이라는 점에 유의하십시오. 그리고 그것은 Tcl의 구문 분석과 RE 엔진 모두를 넘어 리터럴을 얻기 위해 작성해야하는 백 슬래시 수를 최소화하는 형식입니다 구문 분석 ... –
추가 단계를 수행해 주셔서 감사합니다. – EDJ