0

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

为了将文件 data.txt 从 Linux 机器复制到 windows 机器

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.
4

2 回答 2

0

你需要逃跑\

尝试

spawn  scp   /tmp/data.txt  ADMIN@192.9.200.17:'c:\\'
于 2013-07-29T13:10:44.420 回答
0

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

于 2013-07-29T14:05:22.133 回答