Выполнить скрипт Linux (ожидаемо) в Matlab с помощью system () - PullRequest
0 голосов
/ 29 октября 2018

Matlab R2015a

Здравствуйте,

Чтобы программно подключиться через ssh, я создал сценарий , как описано в

ssh connect и программные команды

  #!/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

Идея состояла в том, чтобы запустить эту команду из Matlab с помощью system ():

  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 не хочет запускать сценарий оболочки?

Заранее спасибо.

Jleon

...