Ответ 1
Вы можете использовать эту конструкцию:
export LD_LIBRARY_PATH=/mypath${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
Пояснение:
-
Если
LD_LIBRARY_PATH
не задано, то${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
не расширяется до нуля без оценки$LD_LIBRARY_PATH
, поэтому результат эквивалентенexport LD_LIBRARY_PATH=/mypath
и не возникает ошибка. -
Если
LD_LIBRARY_PATH
уже установлено, то${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
расширяется до:$LD_LIBRARY_PATH
, поэтому результат эквивалентенexport LD_LIBRARY_PATH=/mypath:$LD_LIBRARY_PATH
.
Дополнительную информацию об этих расширениях см. в Bash Reference Manual/3.5.3 Expansion Expansion.
Это важная практика безопасности, как два соседних двоеточия или хвостовой/ведущий двоеточие, как добавление текущего каталога в $PATH
или $LD_LIBRARY_PATH
. См. Также: