При попытке диагностировать ошибку, которую я получаю (пытающийся запустить программу, которая использует cuda Nvidia), говорится в руководстве по началу работы CUDA:
Настройте среду разработки путем изменения ПУТИ и переменных LD_LIBRARY_PATH:
$ export PATH=/usr/local/cuda-9.1/bin${PATH:+:${PATH}} $ export LD_LIBRARY_PATH=/usr/local/cuda-9.1/lib64\ ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
Ссылка: http://docs.nvidia.com/cuda/cuda-quick-start-guide/index.html#ixzz553mlsUKP
Я, как предполагается, заменяю один из "ПУТИ "s с фактическим путем?" $" или фигурные скобки означают, что я должен заменить пример своим собственным путем?
Я очень плохо знаком с Linux в целом, заранее спасибо в течение Вашего времени и терпения.
Нет, необходимо ввести его дословно (за исключением продвижения $
, который просто предназначен для указания на приглашение оболочки).
Последовательность ${PATH:+:${PATH}}
расширение параметра - это просто, оказывается, хитрое для парсинга потому что один из :
s является частью синтаксиса расширения, в то время как другой является литеральным.
Базовый синтаксис ${parameter:+word}
который, как объяснено в BashGuide: средства Расширения Параметра
Если 'параметр' является пустым или сброс, ничем не заменяют, иначе 'слово' (который может быть расширением), заменен.
В вышеупомянутом контексте параметр PATH
и слово :${PATH}
. Итак, если PATH
пусто или сброс (который является очень маловероятным BTW), затем экспорт становится справедливым
export PATH=/usr/local/cuda-9.1/bin
тогда как, если PATH
непусто, это становится
export PATH=/usr/local/cuda-9.1/bin:$PATH
т.е. предварительно ожидает /usr/local/cuda-9.1/bin
к Вашему существующему пути, с обязательным разделителем двоеточия.
TL; DR это - умный способ предотвратить добавление побочного запаздывания :
в (редком) случае, что PATH
переменная пуста или сброс.