【发布时间】:2013-07-29 07:01:26
【问题描述】:
我创建了以下脚本(在 ksh 下),
为了将文件data.txt从Linux机器复制到windows机器
expect 会自动执行 scp 进程,所以密码问题会由 expect 来回答
问题是expect不能忽略下一行中的“\”反斜杠
spawn scp /tmp/data.txt ADMIN@192.9.200.17:'c:\'
所以从输出中我看到期望发送没有“\”反斜杠的行
我的语法/脚本需要改变什么,所以期望会忽略反斜杠?
我的脚本
#!/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.
【问题讨论】:
-
尝试使用 'c:/' 代替,可能会评估到相同的路径。
-
是的,你现在做对了,谢谢分配
-
回答这个,我会投票,
-
将我的回复标记为答案,以便其他用户知道解决方案是什么:)
标签: linux windows tcl expect scp