set "/home/user/path to files/"*.xls
for f do [ "$f" -nt "$two_day_old_file" ] && set "$@" "$f" ; shift ; done
touch "$two_day_old_file"
echo $MBODY | mutt -s "Data files for $TODAY" -a "$@" -- $EMAILS
Para enviá-los um de cada vez, altere a linha echo
para:
for mailf do echo "$MBODY" |
mutt -s "Data files for $TODAY" -a "$mailf" -- $EMAILS
done
Provavelmente funcionaria, mas o seu verdadeiro problema está aqui:
...
set IFS=...
...
Isso não afeta o valor do separador de campo interno, mas atribui o valor IFS=...
ao primeiro parâmetro posicional ou $1
. $IFS
permanece valioso, seja lá o que fosse antes de você set
$1
. Você só precisa fazer:
IFS='
'
Ou ...
IFS=${IFS# }
... se $IFS
estiver definido com o valor padrão, que deve ser se este for um script executável e você não tiver alterado $IFS
em qualquer outro lugar no script.