Matlab R2015a
你好
为了以编程方式进行ssh连接,我做了
中所述的 expect 脚本ssh connect and commands programmatically
#!/usr/bin/expect
set login "any_user"
set addr "some_address"
set pw "any_pwd"
spawn ssh -t $login@$addr
expect "$login@$addr\'s password:"
send "$pw\r"
expect "~" ; # put here string from your server prompt
send "mkdir some_dir\r"
interact
我将此脚本称为LoginSSH.sh(当然,使用我自己的数据),然后我在Linux控制台中运行此命令而没有任何问题:
./ LoginSSH.sh
我们的想法是使用system()从Matlab运行此命令:
scmd='./LoginSSH.sh'
[status,cmdout]=system(scmd)
但是由于某些原因,Matlab在通过system()执行脚本时遇到了一些问题。这是输出:
status =
1
cmdout =
OpenSSL version mismatch. Built against 100020af, you have 1000107f
send: spawn id exp4 not open
while executing
"send "$pw\r""
(file "./LoginSSH.sh" line 8)
我什至可以在Python中运行命令:
import os
from subprocess import call
call(["./LoginSSH.sh"])
再次,没有任何问题。
Matlab不愿意运行Shell脚本的原因可能是什么?
谢谢。
jleon