You could use this construct:
export LD_LIBRARY_PATH=/mypath${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
Explanation:
-
If
LD_LIBRARY_PATHis not set, then${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}expands to nothing without evaluating$LD_LIBRARY_PATH, thus the result is equivalent toexport LD_LIBRARY_PATH=/mypathand no error is raised. -
If
LD_LIBRARY_PATHis already set, then${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}expands to:$LD_LIBRARY_PATH, thus the result is equivalent toexport LD_LIBRARY_PATH=/mypath:$LD_LIBRARY_PATH.
See the Bash Reference Manual / 3.5.3 Shell Parameter Expansion for more information on these expansions.
This is an important security practice as two adjacent colons or a trailing/leading colon count as adding the current directory to $PATH or $LD_LIBRARY_PATH. See also:
- What corner cases must we consider when parsing path on linux
- bash: $PATH ending in colon puts working directory in PATH
- How Torch broke ls