Why doesn't getenv work on MAC OS X?

20 views (last 30 days)
Brando Miranda
Brando Miranda on 11 Dec 2017
Answered: Greg on 12 Dec 2017
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 Comments
Jos (10584)
Jos (10584) on 11 Dec 2017
How do you know they exist? Apparently Matlab cannot find them. I have no problem on my Mac.
Brando Miranda
Brando Miranda on 11 Dec 2017
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')

Sign in to comment.

Answers (1)

Greg
Greg on 12 Dec 2017
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.

Categories

Find more on Cluster Configuration in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!