Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何在expect脚本中忽略反斜杠_Linux_Windows_Tcl_Expect_Scp - Fatal编程技术网

Linux 如何在expect脚本中忽略反斜杠

Linux 如何在expect脚本中忽略反斜杠,linux,windows,tcl,expect,scp,Linux,Windows,Tcl,Expect,Scp,我创建了以下脚本(ksh下除外) 为了将文件data.txt从Linux机器复制到windows机器 scp过程将由expect自动执行,因此密码问题将由expect回答 问题是expect不能忽略下一行的“\”反斜杠 spawn scp /tmp/data.txt ADMIN@192.9.200.17:'c:\' 因此,从输出中,我看到expect发送的行没有“\”反斜杠 我的语法/脚本中需要更改哪些内容才能使expect忽略反斜杠 我的剧本 #!/bin/ksh

我创建了以下脚本(ksh下除外)

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

scp过程将由expect自动执行,因此密码问题将由expect回答

问题是expect不能忽略下一行的“\”反斜杠

   spawn  scp   /tmp/data.txt  ADMIN@192.9.200.17:'c:\'
因此,从输出中,我看到expect发送的行没有“\”反斜杠

我的语法/脚本中需要更改哪些内容才能使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/tmp/data.txtADMIN@192.9.200.17:'c:/'
而不是,因为它应该计算到相同的路径。

尝试使用'c:/'而不是,可能计算到相同的路径。是的,你现在就纠正它的工作,回答这个问题,我将投票,将我的响应标记为答案,以便其他用户知道解决方案是什么:)运行脚本时得到的输出是什么?你能从shell中
scp
到Windows框吗(不在expect脚本中)?那么expect脚本可能不是问题所在。您的Windows机箱可能不是正在运行的SSH/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:\\'