У меня есть задача, написать shell-скрипт, который:- все электронные письма, полученные пользователем, указанным в первом параметре, отправляются пользователям текущей запущенной системы; - Если отправитель онлайн, введите сообщение терминала и отправьте этому пользователю.
Этот скрипт:
#!/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
У меня 2 проблемы:
- Как распечатать сообщение из почты без заголовка?
- чтение работает abinormaly: работает только 1 сек и выключен. Я пытаюсь использовать почту -t 30, но проблема не решена.