Linux 如何在expect脚本中忽略反斜杠
我创建了以下脚本(ksh下除外) 为了将文件data.txt从Linux机器复制到windows机器 scp过程将由expect自动执行,因此密码问题将由expect回答 问题是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
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:\\'