Я пытаюсь запустить эту команду в Python3.Каждая часть в отдельности работает правильно, но я не могу заставить их работать вместе.
os.system('ssh -t user@computer \'cd /MatLabFolder; /Applications/MATLAB_R2017a.app/bin/matlab -r \"cd /Test; try, run(\'/Test/TF03_MatLabCommands_and_results.m\'); end; quit\"; bash -l\'')
На данный момент TF03_MatLabCommands_and_results.m
просто имеет следующее
in_dir_list={'/Volumes/promiseraid9/workspace/colleen/NewResiduals/Test/58514_TF03_default','/Volumes/promiseraid9/workspace/colleen/NewResiduals/Test/58514_TF03_mask10'};
out_dir_list={'/Volumes/promiseraid9/workspace/colleen/NewResiduals/Test/58514_TF03_default','/Volumes/promiseraid9/workspace/colleen/NewResiduals/Test/58514_TF03_mask10'};
in_dir_list
В основном у меня просто естьон распечатывает, что такое in_dir_list
, просто чтобы я мог видеть, что он работает.
Теперь, если я уже ssh
на компьютере, на котором я хочу обработать, и запускаю
/Applications/MATLAB_R2017a.app/bin/matlab -r "cd /Test; try, run('/Test/TF03_MatLabCommands_and_results.m'); end; quit"
работает как надо.Так что я знаю, что команда UNIX верна.Но если я запускаю первую команду, MATLAB не распознает " \' "
, как это делает Python, а просто удаляет '
все вместе, поэтому команда, которая запускается в MATLAB, в конечном итоге будет
cd /Test; try, run(/Test/TF03_MatLabCommands_and_results.m); end; quit
|
Error: Unexpected MATLAB operator.
Обратите внимание, что нет '
до и после M-файла и пути.
Я также знаю, что команда ssh также правильна, потому что ее запуск до точки выполнения команды в MATLAB также работает (то есть, я могуSSH к компьютеру, и откройте MATLAB).И он пытается выполнить хотя бы команду, но из-за путаницы " '\ "
не видит нужных '
.
Как правильно избежать кавычек?