En FreeBSD 12, usando el zshshell, noté esta diferencia al mirar $path(minúsculas) versus $PATH(mayúsculas).
echo $path
/ sbin / bin / usr / sbin / usr / bin / usr / local / sbin / usr / local / bin / usr / home / freebsd / bin
echo $PATH
/ sbin: / bin: / usr / sbin: / usr / bin: / usr / local / sbin: / usr / local / bin: / usr / home / freebsd / bin
Una salida está delimitada por el carácter ESPACIO, la otra por el carácter COLON.
➥ ¿Por qué la diferencia?
¿Son estas dos variables diferentes y separadas? ¿O las minúsculas / mayúsculas desencadenan algún tipo de truco o significado que no conozco?
¿Es esta una zshcaracterística? ¿O una característica de FreeBSD?

pathel interiorzshno se actualizará cualquierpathvarentorno:path=junk zsh -c 'echo $path; path=garbage; /usr/bin/printenv path'.for path in "$dir"/*un código reflexivamente seguro para escribir.Respuestas:
Esa es una característica de
zshheredado decsh/tcsh.La variable de
$pathmatriz está vinculada a la variable$PATHescalar (cadena). Cualquier modificación en uno se refleja en el otro.En
zsh(contrario a(t)csh), puede vincular otras variables además de$PATHcontypeset -T. Es convencional, pero no obligatorio, usar un nombre en mayúscula para el escalar separado por dos puntos y el mismo nombre en minúscula para la matriz. Si bien los dos puntos son el separador predeterminado, se pueden usar otros separadores (por ejemplo, nueva línea para vincular una cadena de varias líneas a una matriz o una coma para vincular una fila csv a una matriz)En versiones recientes de
zsh,typeset -p PATHotypeset -p pathmuestra el enlace entre las dos variables:Eso es útil porque hace que sea más fácil agregar componentes de eliminación o recorrerlos.
Hacer un
typeset -U pathpara que los elementos sean únicos también ayuda a mantener$PATHlimpia la variable (se puede lograr algo similartcshconset -f).fuente