1 votos

¿Cómo zsh encuentra los comandos?

A menos puedo volver a bash, ahora yo tengo que escribir la ruta de acceso completa de los scripts que he escrito. ¿Cómo zsh encontrar los comandos?

Las cosas en /bin, /usar/bin, etc. todavía funcionan, pero las cosas en ~/bin "no encontrado", incluso cuando el camino está en el inicio de ambos $PATH y $path.

Después de poner

PATH="~/bin:$PATH
path="$PATH"

en ~/.zshrc como,

echo $PATH; echo $path

muestra al principio de la ruta, pero aún así no encontrar los comandos. Y no se trata de permisos: los scripts de trabajo cuando yo escriba sus rutas completas.)

0 votos

¿Cómo ha comprobado el contenido de su variable de entorno PATH? (por ejemplo, ¿comprobó desde un prompt de zsh? - etc)

0 votos

¿Qué pasa si escribes ? typeset -U path y luego path=(~/bin $path) ? Probablemente añadiría esto en el archivo ~/.zprofile .

0 votos

Normalmente utilizo $HOME/bin en lugar de ~/bin ya que evita los errores típicos, como citar "~/bin ", que no funciona mientras "$HOME/bin" lo hace.

2voto

zsh no se expande ~ entre comillas. Es necesario utilizar

PATH=~/bin:$PATH

en su lugar.

PD: Y path=$PATH no es necesario, zsh lo hace automáticamente

0 votos

Bueno, o me he dejado las comillas o se ha ampliado. Como dije, ambas variables hizo comienzan con ~/bin sin embargo scripts allí tuvo que ser deletreado completamente.

0 votos

@Wgroleau Si la variable path contiene ~ no funcionará

0 votos

@WGroleau ¿Tu camino empieza por " ~/bin ", o con " /Users/yourname/bin "? La primera no funcionará el segundo debería.

1voto

Jose Chavez Puntos 645

No indicas cómo has comprobado exactamente que la ruta está realmente al principio de $PATH - pero en general deberías saber que MacOS Catalina ha cambiado el shell por defecto de bash a zsh - y como tal tendrás que trasladar cualquier modificación que hayas hecho a PATH en .bashrc (por ejemplo) al archivo correspondiente para zsh (por ejemplo .zshrc, .zshenv o .zprofile).

La forma "estándar" de añadir rutas en MacOS es crear un archivo en /etc/paths.d/ que contenga la ruta del directorio que quieres añadir a la ruta. Entonces, cuando lances cualquier shell, debería añadirse automáticamente a tu variable de entorno PATH. Por ejemplo, cree un archivo llamado

/etc/paths.d/wgroleau

Y haz que contenga sólo la siguiente línea de texto:

/Users/wgroleau/bin

Esto cambiaría las rutas por defecto del sistema para incluir ese directorio.

ACTUALIZACIÓN: Siguiendo tus comentarios estoy empezando a pensar que tu problema podría no estar relacionado con el PATH en absoluto. Afirmas que los problemas que experimentas giran en torno a scripts que has escrito tú mismo. Si esos scripts resultan ser bash-scripts que comienzan con un shebang para bash, entonces esos scripts necesitan ser convertidos a zsh para funcionar si no tienes bash instalado - o alternativamente podrías instalar bash de nuevo desde HomeBrew o desde Apple.

0 votos

Soy consciente de ese cambio en Catalina, de ahí la pregunta. He editado para aclarar que por razón desconocida, tu primera sugerencia no funciona. Probaré la sugerencia del sistema; es algo de lo que no había oído hablar.

0 votos

@WGroleau Puede que merezca la pena señalar que los cambios de /etc/paths.d funcionar en todo el sistema, para todos los usuarios/cuentas

0 votos

@nohillside Sí, eso ya está apuntado al final de mi respuesta. Si no quieres que sea en todo el sistema, usa .zshrc o .zprofile en tu directorio home.

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