使用system()在Matlab中执行Linux脚本(期望)

时间:2018-10-29 18:48:57

标签: linux matlab shell expect

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

0 个答案:

没有答案