1 votos

Mostrar el mensaje de la terminal al iniciar la sesión

Quiero mostrar algo como ### this is a test ### cuando se abre una nueva ventana de Terminal (e idealmente, de manera que pueda ser desactivada fácilmente). En Linux esto era sencillo; se creaba un script en /etc/profile.d/ que sería responsable de echo -Esta función se realiza cuando se abre una nueva sesión de Terminal.

He estado jugando con launchd para intentar que esto funcione pero sin éxito. He creado un agente en /Library/LaunchAgents/org.test.greeting.plist con el siguiente código (donde el archivo greeting.sh es el responsable de hacer el echo ) con la esperanza de obtener alguna salida cuando el usuario se conecte.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>org.test.greeting</string>

    <key>ProgramArguments</key>
    <array>
        <string>/Users/test/greeting.sh</string>
    </array>
    <key>RunAtLoad</key><true/>
</dict>
</plist>

Esto no ha funcionado, ya que el mensaje se pierde en el éter. Sin embargo, sé que el agente se está ejecutando con éxito. Sé que es posible redirigir la salida a un archivo usando StandardErrorPath y StandardOutPath pero no me son útiles.

¿Alguien sabe cómo hacer que esto funcione con launchd ¿o tal vez tenga otra forma de hacerlo?

1 votos

¿Has mirado el "mensaje del día"? - man 5 motd

1 votos

"En Linux", por supuesto, es una afirmación sin sentido. Todo lo que tu ejemplo de /etc/profile.d significa es que al menos una distribución de Linux tiene /etc/profile (para shells Bourne) configurado para leer un directorio punto-d y ejecutar lo que encuentra allí. No tendría nada que ver con launchd.

4voto

Oskar Puntos 1242

Me gusta el mensaje del día para esto. Como dicta la tradición...

me@Mac ~ % echo "Welcome to the University of East Westia" > /tmp/motd
me@Mac ~ % sudo mv /tmp/motd /etc

Nota: /etc/motd sólo se muestra en un shell de inicio de sesión, que es el típico de Terminal.app en MacOS. Si normalmente ejecuta shells que no son de inicio de sesión, debe manejar la visualización de /etc/motd en sus archivos de puntos del shell.

0 votos

Excelente, ¡esto funciona perfectamente! Y es muy fácil de deshacer cuando es necesario. ¡Gracias!

4voto

baggiponte Puntos 31

¿Has probado a editar tus dotfiles?

Como referencia, en mi ~/.zshrc Tengo en la parte superior el comando neofetch . En sí, es sólo un comando que puedes ejecutar desde tu shell. De esta manera, cada vez que inicio una nueva ventana o pestaña de iTerm2/Terminal, consigo que se ejecute el comando y se muestre esto.

my terminal at launch

Lo mismo se puede hacer escribiendo en la parte superior de su archivo de configuración algo como lo siguiente: echo "### this is a test ###"

4 votos

Esto no es útil, es sólo una publicidad para homebrew y neofetch.

2 votos

Lo siento Marc, sólo quería poner un ejemplo práctico de mi uso diario. Por supuesto, no tengo ningún interés en promover ninguna de las dos cosas. Intentaré editar la respuesta.

0 votos

¡Me encanta esto! Comprobando neofetch inmediatamente. Gracias @MarcWilson para la fijación de mi redacción suave en mi respuesta. Probé motd usando la aplicación Prompt en iOS / iPadOS para ssh en un par de construcciones recientes.

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