Comment puis-je lancer une autre commande s'il y a une entrée sur l'entrée standard ?
couramment utilisé dans des situations comme celle-ci :
une commande sans sortie normale | ifinput mail -s 'some output' me
Comment puis-je lancer une autre commande s'il y a une entrée sur l'entrée standard ?
couramment utilisé dans des situations comme celle-ci :
une commande sans sortie normale | ifinput mail -s 'some output' me
La solution la plus simple serait d'utiliser un fichier (si vous osez !). Le site -s
signifie "le fichier n'a pas une taille nulle". Le site &>
Les redirections incluent également les erreurs (ce qui signifie que stdout et stderr seront envoyés).
OUTFILE=/tmp/command.out
some command &> $OUTFILE
[ -s "$OUTFILE" ] && mail -s "subject here" email@example.com < "$OUTFILE"
Edit : le commentaire ci-dessous de glenn jackman contient même une meilleure solution.
Vous pouvez également créer un Shell Shell. Ce Shell pourrait d'abord appeler une commande qui redirige la sortie vers un fichier et ensuite appeler la commande mail depuis le Shell pour l'envoyer, ce qui est essentiellement ce que SamKrieg fait sans avoir besoin de créer un Shell Shell. Une raison pour le Shell peut dépendre de si vous voulez exécuter cette commande comme une tâche cron ou quelque chose comme ça.
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.