如何忽略expect脚本中的反斜杠

时间:2013-07-29 13:04:37

标签: linux windows tcl expect scp

我创建了以下脚本(期望在ksh下),

将文件data.txt从Linux机器复制到Windows机器

scp进程将自动生成,因此密码问题将由期待

回答

问题是期望不能忽略来自以下行的“反斜杠”

   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.

2 个答案:

答案 0 :(得分:0)

您需要转义\

尝试

spawn  scp   /tmp/data.txt  ADMIN@192.9.200.17:'c:\\'

答案 1 :(得分:0)

请使用spawn scp /tmp/data.txt ADMIN@192.9.200.17:'c:/',因为它应该评估相同的路径。