我在以下路径中安装了名为lqns
的应用程序:/home/robb/Research/dist/lqns-6.2/lqns
(lqns
是一个包含可执行文件lqns
的文件夹)。我希望该程序在命令行中执行,只需在shell中调用lqns
,我解决了这个问题,在文件~/.bashrc
中添加以下行:
export PATH=$PATH:/home/robb/Research/dist/lqns-6.2/lqns
而且它工作起来没有问题。我现在正试图在Matlab脚本中执行这个程序,运行:
[status, ~] = system("lqns " + filename, '-echo');
其中filename
是输入文件的路径。我得到错误消息:
/bin/bash: line 1: lqns: command not found
用shell运行完全相同的命令,我没有得到任何错误:程序运行时不会出现生成相关输出的问题。
在Matlab中运行getenv('PATH');
,在我的OS shell中运行printenv PATH
,我确实得到了两个不同的结果:Matlab没有lqns
的路径,我甚至试着手动编辑/etc/environment
、/etc/bash.bashrc
和/root/.bashrc
文件,都没有结果,怎么解决这个问题?
1条答案
按热度按时间mrwjdhj31#
你需要通过在终端中键入
matlab
来启动matlab,而不是通过在桌面上双击它的快捷方式。(或者甚至在桌面上的终端中键入./matlab
)由操作系统来确定双击的作用,并且不能保证执行大多数shell初始化脚本(甚至不能保证从正确的shell启动它)。
更多信息请访问Why are environment variables not resolved when double-clicking .desktop file?