Enviando arquivos específicos com Mutt

2

Estou tentando usar o Mutt para enviar arquivos específicos em uma pasta. Eu tenho uma pasta chamada "Image Cache" que, com uma foto sendo tirada a cada segundo, tem 30 segundos de fotos nela. Eu gostaria de usar o Mutt para colocar 15 segundos de fotos em um email como anexos e enviá-los para mim. Cada foto é de cerca de 30 KiB, colocando 15 em um e-mail não deve ser um problema.

Até agora tenho usado a maior parte do código desta postagem aqui com algumas alterações para corresponder ao meu sistema de arquivos.

Aqui está o código que estou usando:

#!/bin/bash
DATE=$(date +%F)
MESSAGE="IMAGES" 
FILES=$(find /path/to/directory -not -newermt '-15 seconds' | sed 's/ /\  /g' | grep ".jpg")


if [ -z "$FILES" ]; then
MBODY="No images were found that match search criteria."
echo "$MBODY" | mutt -s "Data files for $TODAY" $EMAILS
fi

echo $MESSAGE | mutt -s "Images taken on $DATE" -a "$FILES" -- [email protected]

Exclui este erro:

Can't stat /My/Directory/Image1.jpg
/My/Directory/Image2.jpg: No such file or directory
/My/Directory/Image3.jpg: unable to attach file.

Qualquer ajuda é muito apreciada :). Agradecemos antecipadamente

    
por Yllier123 26.10.2015 / 16:43

1 resposta

3

Como você está citando "$FILES" , está passando uma única string para a opção -a . Você tem que passar arquivos individuais lá.

O que você deve fazer é armazenar os arquivos em uma matriz: é a melhor maneira de manipular várias cadeias que contêm espaços em branco. Eu suponho que seus nomes de arquivos não contenham novas linhas

# read the output of 'find' into an array, one element per line
mapfile -t files < <(find /path/to/directory -name '*.jpg' -not -newermt '-15 seconds')
# ...
echo "$message" | mutt -s "Images taken on $date" -a "${files[@]}" -- [email protected]
# ...................................................^^^^^^^^^^^^^

Essa forma exata de expansão de parâmetro resultará em cada elemento da matriz como uma palavra separada no comando.

Desconecte-se do uso de ALLCAPSVARNAMES: um dia você usará PATH=... e depois se perguntará por que seu script está quebrado

    
por 26.10.2015 / 17:05

Tags