Why doesn't getenv work on MAC OS X?

조회 수: 3 (최근 30일)
Brando Miranda
Brando Miranda 2017년 12월 11일
답변: Greg 2017년 12월 12일
I was trying to get environment variables that I know exist but it returns empty arrays...is that normal?
hello =
00 empty char array
res =
00 empty char array
>>
from running
hello = getenv('hello')
res = getenv('SYSTEMROOT')
----
These are the scripts I am exactly running:
#!/bin/bash
alias matlab='/Applications/MATLAB_R2017a.app/bin/matlab -nodesktop -nosplash'
hello=hellohello
echo $hello
matlab -nodesktop -nosplash -nojvm -r "test_sh"
which runs the following:
clear;
%SLURM_JOBID = getenv('SLURM_JOBID')
%SLURM_ARRAY_TASK_ID = getenv('SLURM_ARRAY_TASK_ID')
hello = getenv('hello')
res = getenv('SYSTEMROOT')
PATH = getenv('PATH')
  댓글 수: 2
Jos (10584)
Jos (10584) 2017년 12월 11일
How do you know they exist? Apparently Matlab cannot find them. I have no problem on my Mac.
Brando Miranda
Brando Miranda 2017년 12월 11일
what I do is run a bash script then in the bash script itself I create and echo the env variable. So it exists for sure at least in the bash script. The I run the matlab script and they are nowhere to be found:
#!/bin/bash
alias matlab='/Applications/MATLAB_R2017a.app/bin/matlab -nodesktop -nosplash'
hello=hellohello
echo $hello
matlab -nodesktop -nosplash -nojvm -r "test_sh"
which runs:
clear;
%SLURM_JOBID = getenv('SLURM_JOBID')
%SLURM_ARRAY_TASK_ID = getenv('SLURM_ARRAY_TASK_ID')
hello = getenv('hello')
res = getenv('SYSTEMROOT')
PATH = getenv('PATH')

댓글을 달려면 로그인하십시오.

답변 (1개)

Greg
Greg 2017년 12월 12일
One article I read indicates you need to call
export hello
To actually set hello as an environment variable. Otherwise, hello only exists as a "shell variable." I'm definitely not a MAC wizard, so I have no clue if that's correct, just a quick Google search.

카테고리

Help CenterFile Exchange에서 Third-Party Cluster Configuration에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by