беспорядок нотации

При попытке диагностировать ошибку, которую я получаю (пытающийся запустить программу, которая использует 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 в целом, заранее спасибо в течение Вашего времени и терпения.

0
задан 23 January 2018 в 18:16

1 ответ

Нет, необходимо ввести его дословно (за исключением продвижения $, который просто предназначен для указания на приглашение оболочки).

Последовательность ${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 переменная пуста или сброс.

0
ответ дан 31 October 2019 в 03:36

Другие вопросы по тегам:

Похожие вопросы: