0 votos

El comando para el alias local='...' se ejecuta al abrir el terminal

Tengo un alias configurado en mi archivo .bash_profile: alias local='npm run start-local' y, por alguna razón, cuando abro una nueva sesión de terminal, intenta ejecutar ese comando npm run start-local inmediatamente. Funciona bien si le cambio el nombre a "local2". ¿Qué puede estar causando esto?

Este alias lo obtuve de mi compañero de trabajo que lo usa regularmente, y la única diferencia que conozco es que él no está en Mojave.

Edición: algo interesante que he notado es que si lo cambio a alias local='echo ' entonces veo

NVM_AUTO_MODE
NVM_CURRENT
NVM_MODE
VERSION
-bash: fork: Resource temporarily unavailable

Lo que añade evidencia de que está ejecutando mi comando local cuando algo está tratando de usar la variable local.

0 votos

¿Su compañero de trabajo utiliza como shell bash?

0 votos

Intenté añadir una variedad de alias local a mi .bash_profile y no he podido reproducir el comportamiento que describes. Parece que algo específico de su máquina está causando local para ser invocado.

3voto

Rakib Fiha Puntos 11

No he podido recrear lo que has dicho que te ocurre.

Diciendo esto yo diría que: Es realmente muy peligroso para invocar local como su alias

Porque la palabra local es un shell builtin, una palabra reservada para el shell Bash por defecto para definir una variable local en Bash script dentro de una función Bash. Si usted hace type local desde una nueva ventana de terminal después de eliminarlo de su alias o por unalias local y entonces verás que dice:

local is a shell builtin

Por eso, cuando cambió su alias a local2 de local funcionó bien desde local2 no es un shell builtin.

Sin embargo, si está utilizando Korn Shell (versión 93u+), local no es un shell construido allí. Pero, en la mayoría de los otros shells local es una palabra reservada o un "builtin" del shell. Así que, en resumen: local no debe ser almacenado como un alias

Para más información sobre el shell builtin, consulte la página man: man builtin

Además, como mencionó Gordon Davidson, definitivamente hay algo que llama la local y ya que lo has anulado como un alias para npm Se ejecuta cada vez que se abre una nueva sesión.

2 votos

Apuesto a que hay algo en uno de los shell de inicio scripts que intenta utilizar local para su función normal (declarar una variable local del shell), y debido al alias está ejecutando npm en su lugar. No tener la variable declarada correctamente puede impedir que el script funcione correctamente. Esta es la razón por la que es realmente peligroso anular comandos estándar a menos que sepas exactamente lo que estás haciendo.

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