Visualizza il messaggio del terminale all'accesso

Oct 03 2020

Voglio visualizzare qualcosa come ### this is a test ###quando è aperta una nuova finestra di Terminale (e idealmente, in un modo che può essere disabilitato facilmente). Su Linux questo era semplice; creeresti uno script in /etc/profile.d/cui sarebbe responsabile echodell'invio del messaggio quando viene aperta una nuova sessione di terminale.

Ho giocato con launchd per provare a farlo funzionare ma senza successo. Ho creato un agente /Library/LaunchAgents/org.test.greeting.plistcon il seguente codice (dove il file greeting.sh è responsabile di fare il echo) sperando di ottenere un output quando l'utente accede.

<?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>

Questo non ha funzionato, poiché il messaggio è perso nell'etere. Tuttavia, so che l'agente funziona correttamente. So che è possibile reindirizzare l'output a un file usando StandardErrorPathe StandardOutPathma quelli non mi sono utili.

Qualcuno sa come farlo funzionare launchd, o forse ha un altro modo per farlo?

Risposte

3 bmike Oct 03 2020 at 20:10

Mi piace il messaggio del giorno per questo. Come vuole la tradizione ...

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

Nota: / etc / motd viene visualizzato solo in una shell di login, che è tipica di Terminal.app su macOS. Se in genere esegui shell non di login, dovresti gestire la visualizzazione di / etc / motd nei tuoi file punto della shell.

2 baggiponte Oct 03 2020 at 20:53

Hai provato a modificare i tuoi dotfile?

Come riferimento, nel mio ~/.zshrcho in cima il comando neofetch. Di per sé, è solo un comando che puoi eseguire dalla tua shell. In questo modo, ogni volta che avvio una nuova finestra o scheda iTerm2 / Terminal ottengo il comando eseguito e lo visualizzo.

Lo stesso può essere fatto scrivendo nella parte superiore del file di configurazione qualcosa come il seguente: echo "### this is a test ###"