Invio di posta dal file / etc / profile


5

Ho aggiunto un comando e-mail al /etc/profilefile in questo modo:

echo test | mail -s "test mail" me@my.domain &

Alla &fine della riga è per eseguire il comando mail in background per non aggiungere un ritardo al prompt di accesso.

Tutto funziona bene, ma se premo Enterposso vedere il risultato del comando mail al prompt:

[1]+  Done       echo test | mail -s "test mail" me@my.domain

Se rimuovo il &alla fine della riga il problema non appare ma non ho il comando in background.


Ho anche aggiunto> / dev / null 2> & 1 & per fare un test ma nulla è cambiato.
Michele Fiore,

Risposte:


3

Prova a metterlo in una sub shell:

`echo test | mail -s "test mail" me@my.domain &`

dovrebbe fare il lavoro.

Anche il reindirizzamento di entrambi stdoute stderrallo stesso tempo funziona per me:

echo test | mail -s "test mail" me@my.domain &> /dev/null &

Backquotes necessari?
margherita,

Sì, li stiamo usando per eseguire il comando in una sub shell. proprio come $( ... ).
Ravexina,

La prima soluzione ha funzionato ma la shell secondaria non è stata eseguita in background (vedo l'attesa prima del prompt. La seconda soluzione non ha funzionato (vedo il risultato del comando di posta)
Michele Fiore,

Ok, la seconda soluzione ha funzionato ma usando backquotes. Grazie!
Michele Fiore,

@MicheleFiore sei il benvenuto, puoi accettare la risposta se vuoi, così altri sapranno che funziona;)
Ravexina

2

Prova ad aggiungere un !oltre al &modo in cui il tuo comando non viene eseguito solo in background ma anche rinnegato dalla tua shell corrente:

echo test | mail -s "test mail" me@my.domain &!

Questo funziona per me usando zsh.


1
Funziona bashanche in;)
Ravexina
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.