【发布时间】:2011-10-25 00:34:38
【问题描述】:
我使用 expect/spawn 实现了一个 shell,并从远程服务器向 SCP 文件发送命令,在需要时自动发送密码。
脚本在 UNIX 终端上运行良好。
不过,我尝试通过 C++ 进程使用此脚本。它已被 system() 甚至 popen() 函数调用但没有成功。 返回此错误:“ioctl(raw): I/O error” 有人可以提供任何线索吗?
这是我的脚本:
#!/bin/bash
targetHost=$1
password=$2
sourceFile=$3
destRep=$4
expect -c "
spawn /usr/bin/scp -q $targetHost:$sourceFile $destRep
expect -i $spawn_id {
"*password:*" { send -i $spawn_id $password\r\n; interact }
eof { exit }
}
exit
"
【问题讨论】: