I often use the env
utility in the shebang to call python2
because the location of python2
is not always the same accross systems :
/usr/local/bin/python2
/usr/bin/python2
Therefore, here is my the shebang line I use :
#!/usr/bin/env python2
My pb. is that the DYLD_LIBRARY_PATH
variable gets ignored or reset by the env
utility on Macos :
I have the following line in my .profile
:
export DYLD_LIBRARY_PATH=$HOME/local/lib
export DUMMY=$HOME/local/lib
Let testENV.sh
the following shell script :
#!/usr/bin/env bash
test $(uname -s) = Linux && echo "=> LD_LIBRARY_PATH = $LD_LIBRARY_PATH"
test $(uname -s) = Darwin && echo "=> DYLD_LIBRARY_PATH = $DYLD_LIBRARY_PATH"
echo "=> DUMMY = $DUMMY"
If I run ./testENV.sh
on LINUX, the result is :
=> LD_LIBRARY_PATH = /users/EtuX/0123456789/local/lib
=> DUMMY = /users/EtuX/0123456789/local/lib
If I run ./testENV.sh
on Macos, the result is :
=> DYLD_LIBRARY_PATH =
=> DUMMY = /Users/xyztxyzt/local/lib
If I print the DYLD_LIBRARY_PATH
variable using echo
from outside the script (at the bash prompt), it shows :
/Users/xyztxyzt/local/lib
INFO : My .profile
is a symbolic link to .bash_profile
EDIT 2 : On Macos, the env
utility seems to be the "guilty" one :
$ which env
/usr/bin/env
$ env bash testENV.sh
=> DYLD_LIBRARY_PATH =
=> DUMMY = /Users/xyztxyzt/local/lib
$ bash testENV.sh
=> DYLD_LIBRARY_PATH = /Users/xyztxyzt/local/lib
=> DUMMY = /Users/xyztxyzt/local/lib
EDIT 3 : Replaced LD_LIBRARY_PATH
by DYLD_LIBRARY_PATH
EDIT 4 : Updated the testENV.sh
shell script.
EDIT 5 : Updated the testENV.sh
shell script with the DUMMY
variable.
Is there a way to make it work ?