0 votos

/etc/profile no se ha obtenido para las cáscaras de inicio de sesión

El -l bandera a sh se supone que es la fuente del contenido de /etc/profile y otros perfiles scripts como ~/.profile que generalmente proporcionan el conjunto inicial de variables de entorno para una sesión de inicio de sesión.

Con eso en mente, yo dirijo el comando env -i sh -l -c env y esperar ver un ambiente fresco además de los cambios realizados por /etc/profile . Sin embargo, /etc/profile nunca se obtiene, a pesar de que este es el supuesto comportamiento de la -l bandera. En otros sistemas que no son MacOS, este -l causas de la bandera /etc/profile para ser cargada correctamente.

¿Por qué no funciona en MacOS, y cómo puedo asegurarme de que el perfil scripts se obtiene correctamente en el orden correcto como lo haría al iniciar sesión? (Tengan en cuenta que no quiero una sesión de shell interactiva)

1voto

Michael Zhou Puntos 167

A diferencia de otros sistemas, sh es su propio binario compilado como si llamaras bash --posix . Del manual de referencia de Bash:

The POSIX startup files are executed ($ENV) rather than the normal Bash files.

env -i despoja a cada variable del entorno. Incluso añadiéndola de nuevo como env -i ENV=/etc/profile no funciona.

En lugar de sh Sólo usa bash :

env -i bash -l -c env

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