7 votos

$PATH vs. $ruta

No recuerdo por qué, pero hace mucho tiempo, descubrí que por alguna razón, necesitaba establecer estas dos variables. No causaba problemas en bash, pero ahora en zsh, cuando pongo

export PATH=~/bin:/opt/local/bin:/opt/local/sbin:$PATH
export path=$PATH

(lo mismo que usé en .bashrc) en mi inicialización, obtengo

/Users/…/.zshenv:export:7: path: inconsistent type for assignment

¿Qué quieren decir con "tipo" y para qué se utiliza $ruta?

8voto

siva Puntos 23

La mención de error "tipo" se refiere al tipo de datos de la variable, como cadena o matriz.

$PATH es una cadena, $path es un array. No se puede asignar una cadena, ya sea por variable o por literal, a una variable tipada para contener un array, ya que los tipos no coinciden.

En cuanto a cuál es la diferencia entre las dos variables: están destinadas a representar la misma lista de carpetas, pero en formatos diferentes. $PATH que contiene /path/to/one:/path/to/two significaría que $path es el primer elemento de /path/to/one y el segundo es /path/to/two .

No deberías necesitar manejar las dos variables (y asignar una a la otra no funcionará ya que los tipos no coinciden) - el shell debería manejarlo por ti. Simplemente añada a la variable $PATH y la ruta que añada debe existir como un elemento de $path .

Esto sólo se aplica en zsh heredado de *csh . Puede ver la "unión" entre las dos variables con typeset -p PATH .

$path ser una matriz es realmente conveniente:

  • La adición y alteración de la ruta puede hacerse con operaciones de matriz como append en lugar de la manipulación de cadenas (lo que requiere dividir y unir en el caso de la edición en algún lugar del medio).

  • el bucle a través es sólo for i ($path) { … } sin necesidad de ocuparse de la configuración del carácter de división correcto.

3voto

Michael Zhou Puntos 167

PATH es un valor escalar - una cadena continua de rutas de búsqueda separadas por dos puntos y path es una matriz de rutas de búsqueda. zsh sincronizará tanto la ruta como el PATH. No es necesario que usted lo haga.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X