我创建以下脚本(预计在 ksh 下),
为了将文件 data.txt 从 Linux 机器复制到 Windows 机器
scp 过程将由expect 自动执行,因此密码问题将由expect 回答
问题是expect不能忽略下面一行的“\”反斜杠
spawn scp /tmp/data.txt ADMIN@192.9.200.17:'c:\'
所以从输出中我看到期望发送不带“\”反斜杠的行
我的语法/脚本需要进行哪些更改,以便 Expect 会忽略反斜杠?
我的脚本
#!/bin/ksh
PASSORD=secret123
SCP=`cat << EOF
set timeout -1
spawn scp /var/tmp/data.txt ADMIN@192.9.200.17:'c:\'
expect {
")?" { send "yes\r" ; exp_continue }
word: {send $PASSORD\r}
}
expect eof
EOF`
expect -c "$SCP"
.
结果(输出)
spawn scp /var/tmp/data.txt ADMIN@192.9.200.17:'c:'
gcs@198.202.183.97's password:
scp: c:: Error opening file: The requested operation failed.
Killed by signal 1.
使用 spawn scp/tmp/data.txt ADMIN@192.9.200.17:'c:/'
代替,因为它应该评估为相同的路径。
我是一名优秀的程序员,十分优秀!