Comentário do OP:
For something like
lsI want the directories listed in the terminal, but I want the "Ok" or "fail" to go to thesendmailpart.
Eu não posso fazer isso em tcsh . Isso deve funcionar em bash :
your_command ; { [ $? -eq 0 ] && echo -n OK || echo -n Failed ; echo " at 'date'" ; } | …
Espero que alguém o leve daqui, coloque a linha acima em tcsh e escreva uma resposta melhor.
O melhor que posso pensar é um script bash , se você tiver apenas bash na máquina. O ponto é que você pode executar um script desse tipo a partir de tcsh . Este é um script rápido e sujo:
#!/bin/bash
"$@"
{ [ $? -eq 0 ] && echo -n OK || echo -n Failed ; echo " at 'date'" ; } | sendmail [email protected]
Modifique o shebang se você precisar. Salve esse trecho de código em um arquivo (por exemplo, sendstatus.sh ), torne-o executável com chmod e use-o da seguinte forma:
./sendstatus.sh your_command
./sendstatus.sh your_command --with option -s
./sendstatus.sh ls
./sendstatus.sh ls -sl
As correções:
-
echo -nfaz com que o próximoechocontinue na mesma linha; - o último
echonão leu do canal porque não fazia sentido; -
dateestá dentro de 'marks (substituição de comando);
Os comandos - são agrupados por delimitadores
{}, portanto, sua saída é passada para o% final|no total.