Intentando solucionar un error que obtengo (al ejecutar un progtwig que usa el cuda de nvidia), la guía de inicio de CUDA dice:
Configure el entorno de desarrollo modificando las variables PATH y 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}}
Enlace: http://docs.nvidia.com/cuda/cuda-quick-start-guide/index.html#ixzz553mlsUKP
¿Se supone que debo reemplazar uno de los “PATH” con el camino real? ¿Significan “$” o corchetes que debo reemplazar el ejemplo con mi propio camino?
Soy muy nuevo en Linux en general, gracias de antemano por su tiempo y paciencia.
No, debe escribirlo literalmente (con la excepción del $
inicial, que está destinado a indicar su indicador de shell).
La secuencia ${PATH:+:${PATH}}
es una expansión de parámetros . Simplemente resulta complicado analizarla porque uno de los :
s forma parte de la syntax de expansión, mientras que el otro es literal.
La syntax básica es ${parameter:+word}
que, tal como se explica en BashGuide: significa Expansión de parámetros
Si ‘parámetro’ es nulo o no está definido, nada se sustituye, de lo contrario se sustituye ‘palabra’ (que puede ser una expansión).
En el contexto anterior, el parámetro es PATH
y la palabra es :${PATH}
. Por lo tanto, si PATH
está vacío o no está configurado (lo que es muy improbable por cierto), entonces la exportación se convierte en
export PATH=/usr/local/cuda-9.1/bin
mientras que si PATH
no está vacío, se convierte en
export PATH=/usr/local/cuda-9.1/bin:$PATH
es decir, ante /usr/local/cuda-9.1/bin
a su ruta existente, con el separador de colon obligatorio.
TL; DR es una forma inteligente de evitar agregar un rastreo falso :
en el caso (raro) de que la variable PATH
esté vacía o sin configurar.