Чтобы изменить свои пути (например, LD_LIBRARY_PATH или PYTHONPATH), я сначала проверяю, существует ли переменная. Если да, то я сцепление мое старое значение с новым (разделенным точкой с запятой), иначе я настройки моя переменная на новое значение.
NEW_PATH='/path/to/new/path'
if [ $LD_LIBRARY_PATH ]
then
export LD_LIBRARY_PATH=$NEW_PATH:$LD_LIBRARY_PATH
else
export LD_LIBRARY_PATH=$NEW_PATH
fi
Это работает, но это немного неуклюже, когда у вас их много в скрипте для исходных текстов: есть ли хитрый трюк, чтобы сделать этот блок красивым одним лайнером?
Спасибо !
Этот синтаксис работает:
export LD_LIBRARY_PATH=$NEW_PATH${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
Так что, возможно, это не совсем то, о чем вы просили, но в верхней части вы могли бы сделать:
if [ -z "$LD_LIBRARY_PATH" ]; then
export LD_LIBRARY_PATH=/some/sane/default
fi
... и тогда вы знаете, что он всегда установлен, поэтому вы можете оставить else
выше.