运行Python命令SSH到计算机并在该计算机上运行MATLAB

科琳·B

我正在尝试在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)。并且它至少尝试运行命令,但是由于" '\ "混乱,它没有看到所需的'

如何正确地排除引号?

克里斯·伦戈

通过多个外壳转义引号是一场噩梦。原则上,您应该同时逃避\'字符,从而导致\\\'

run(\\\'/Test/TF03_MatLabCommands_and_results.m\\\')

但这取决于所使用的shell,以及它们如何解析字符串,最终得到的转义字符和引号的确切组合是什么。

一个更简单的解决方案是完全避免使用引号。在MATLAB中,

run('/Test/TF03_MatLabCommands_and_results.m')

是相同的

run Test/TF03_MatLabCommands_and_results.m

只要文件名中没有空格,后者就不需要引号。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在远程计算机上运行ssh并执行命令

通过ssh在远程计算机上运行docker命令

如何使用ssh在远程Unix计算机上运行命令并在命令完成之前退出?

ssh,启动特定的Shell,并在远程计算机上运行命令?

ssh到计算机运行命令并邮寄结果

红宝石在远程计算机上运行命令

HDFS +在Linux远程计算机上运行hdfs命令

使用winexe在Windows计算机上运行“ wmic”命令

在本地计算机上运行点火

在计算机上运行设备固件

VBA宏在家用计算机上运行并在工作计算机上得到错误2147417848

在远程计算机上运行本地python脚本

docker-machine ssh尝试在本地计算机上运行部分命令

在命令行中通过ssh在远程计算机上运行MySQL查询

使用ssh,如何在不退出的情况下在远程计算机上运行命令?

通过ssh在其计算机上以其他用户身份运行命令?

如何在Windows计算机上安装的python中运行Unix命令?

我可以从计算机上运行的VM远程访问计算机吗?

宏可在每台计算机上运行,但出现“1004 错误”的计算机除外

SSH进入远程计算机,运行find命令,然后将查找结果重新同步回本地计算机?

以SSH方式运行的程序在其运行的计算机上访问pulseaudio

通过ssh上传文件并在远程计算机上执行命令

在远程计算机上以root权限运行rsync

无法在计算机上运行 angularjs 代码

Skype动画无法在我的Ubuntu计算机上运行

Bluetoothctl:在Windows计算机上运行rfkill

在两台计算机上运行游戏?

在另一台计算机上运行

在本地和远程计算机上运行的Shell脚本