Linux 在matlab中以编程方式运行shell脚本

Linux 在matlab中以编程方式运行shell脚本,linux,bash,matlab,ssh,Linux,Bash,Matlab,Ssh,我正在尝试打开一个终端,并使用matlab运行一个脚本。该脚本将打开ssh连接。matlab命令是: system(['lxterminal -e "bash ' scriptName '" &'],'-echo'); 当我执行matlab命令时,脚本将运行,但无法验证SSL凭据 该脚本通过python paramiko包运行ssh。 该错误由cli.py模块引起 如果我跑步,问题就解决了 system(['lxterminal -e "sudo bash ' scriptNa

我正在尝试打开一个终端,并使用matlab运行一个脚本。该脚本将打开ssh连接。matlab命令是:

system(['lxterminal   -e "bash ' scriptName '" &'],'-echo');
当我执行matlab命令时,脚本将运行,但无法验证SSL凭据

该脚本通过python paramiko包运行ssh。 该错误由cli.py模块引起

如果我跑步,问题就解决了

system(['lxterminal   -e "sudo bash ' scriptName '" &'],'-echo');
但是,我必须在每次执行脚本时输入用户密码

如果打开lxterminal并运行相同的命令:

bash scriptName
它在没有sudo的情况下工作

我认为这与一些环境变量/配置有关,这些变量/配置在运行脚本之前没有加载到lxterminal中,但无法理解

使用xterm而不是lxterminal具有相同的行为


有什么想法吗?

可能有问题的解决办法是,在使用matlab脚本中的以下命令调用系统命令之前,从matlab环境变量中清空LD_库路径

    setenv('LD_LIBRARY_PATH');
与python需要的库相比,matlab LD_库_路径可能使用了过时的库。
更好的方法可能是开始逐个删除路径,直到找到导致问题的路径。

比较shell和matlab中
env
的输出。谢谢,它们看起来很相似,matlab的路径更大。两者都有相同的用户、日志名和ssh代理。Matlab环境更大(一些更多的变量,如LD_LIBRARY_PATH、AUTOMOUNT_MAP、XFILESEARCHPATH、ARCH)。我应该找什么?我使用Lubuntu发行版。最后,如果我从Matlab打开的终端运行脚本,仍然会得到ssh错误。如果您从matlab生成终端,您能否正确查询代理的密钥?您好,否。当我从CTR+ALT+T终端运行它时,相同的命令可以工作,但当我从matlab打开的终端运行它时,无法验证SSL凭据。您无法从matlab生成的终端查询ssh代理吗?您确定它是以相同的用户身份运行并使用相同的ssh代理(相同的环境变量)吗?如果用户和代理相同,那么当您尝试从matlab生成的终端列出代理中的密钥时会发生什么?