【发布时间】:2025-12-01 08:15:01
【问题描述】:
我有一个小问题 - 解决方法很简单,但我想了解为什么会存在这个问题。我在 .bashrc 中设置了一些环境变量:
export FREESURFER_HOME=/usr/local/freesurfer
在我的 startup.m 文件中,我尝试设置变量:
freesurfer_home=getenv('FREESURFER_HOME');
但是,此对 getenv 的调用返回一个空字符数组。在 MATLAB 中调用 getenv 会返回一些环境变量(例如 getenv('HOME')),但不会返回其他环境变量。我可以从以下行看到哪些环境变量对 MATLAB 可见:
map = java.lang.System.getenv();
我还可以确认缺失值是可见的,至少在 shell 中,使用任何一个
export
env
printenv
对这种差异有解释吗?
【问题讨论】:
-
您是从 shell 还是从某个开始菜单启动 Matlab?在后一种情况下,
.bashrc可能不会被调用... -
我不在 Linux 上测试它,但是如果你在
.profile/.bash_profile配置文件中设置环境变量呢? -
它真的很奇怪,我正在调用一个 bash 脚本并从 bash 脚本中定义 envvariable,然后我调用了 matlab 脚本,但它仍然找不到它。这不奇怪吗?
标签: linux matlab shell environment-variables