Como corrigir este script de remetente de correio local?

1

Eu tenho uma tarefa, escreva um script de shell, que:      - Todos os e-mails, recebidos pelo usuário especificado pelo primeiro parâmetro, são enviados para os usuários do sistema atualmente em execução;      - Se o remetente estiver online, insira a mensagem do terminal e envie para este usuário.

Este script:

#!/bin/bash

#####Static variables#####
SENDER=$1
MSG=''
MSG4S=''

#####Functions#####
gtmsg () {
        echo "p * f $SENDER" | mail | sed '1,/samos/ d' | sed '/Saved/,$ d'
}

sndmsg () {
        /usr/bin/who |
        while read W
        do
                NAME=$(echo "$W" | awk '{printf $1}')

                if [ "$NAME" != "$SENDER" ]
                then
                        echo "$MSG" | mail -s "New mail from $SENDER" "$NAME"
                else
                        echo "Print message for sender: "
                        read MSG4S
                        echo "$MSG4S" | mail -s "New mail for $SENDER" "$SENDER"
                fi
done
}

hlp () {
        echo "$0: sender"
}

#####Main#####
case $# in
        1) MSG=$(gtmsg)
           echo $MSG
           if [ -n "$MSG" ]
           then
                sndmsg
           else
                echo "No mail from $SENDER"
           fi
           ;;
        *) hlp
           ;;
esac

Eu tenho um problema:

  1. Como imprime mensagem de mail sem cabeçalho?
  2. leia executando de forma anônima: está sendo executado apenas 1 segundo e desativado. Eu tentei usar o mail -t 30 , mas o problema não foi resolvido.
por FunnyJS 23.05.2016 / 23:42

0 respostas