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.