3 votos

MacOS zsh alias pwd es incorrecto

Recientemente he cambiado a MacOS y algunos alias en ZSH que estaban trabajando en un sistema linux me está dando dolores de cabeza en MacOS. Para ser más específicos, pwd variable dentro de alias es utilizar el mismo directorio donde se ha originado a partir de. He de recursos .zshrc de diferentes directorios para zsh reconocer pwd correctamente.

Aquí es a lo que me refiero. Mi contenido en .zshrc está:

alias myls="ls -lrth $(pwd)"

y aquí están los resultados:

~ source ~/.zshrc
~ cd ~
~ alias myls
... myls='ls -lrth /Users/myusername'

~ cd ~/Documents
~ alias myls
... myls='ls -lrth /Users/myusername' <--- It should list content for ~/Document
~ source ~/.zshrc
~ alias myls
... myls='ls -lrth /Users/myusername/Documents' <--- Sourcing again fixes it

Alguien me puede decir ¿por qué tengo la fuente de mi .zshrc de nuevo y de nuevo a ser capaz de utilizar $(pwd) mientras trabaja siempre en linux en una sola fuente?

3voto

siva Puntos 23

El $(pwd) en su comando alias es reemplazado inmediatamente por su valor devuelto de la ejecución. Esto ocurre en la creación de los alias, no cuando se quiere utilizar el alias. Como se muestra después de su primera carrera de alias myls, el alias contiene la ruta de acceso exacta, no una llamada a las pcd, así que este será siempre el uso de la ruta original estableció cuando creó el alias.

Para utilizar el directorio actual, no correr pwd, sólo tiene que utilizar una ruta de acceso relativa, que siempre se refiere al directorio actual cuando se ejecuta.

alias myls="ls -lrth ."

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