fswatch | enquanto lê | xargs executando o comando duas vezes

3

Agradecemos antecipadamente por qualquer conselho

Estou trabalhando em um comando fswatch para iniciar um script quando os arquivos atingem a pasta Downloads.

fswatch --event Created Downloads/ | (while read x; do echo $x | xargs -0 bash ./dlsort.sh; done)

O script está funcionando conforme o esperado. O problema que estou tendo é (eu espero) vindo do (enquanto lê x; bit:

O problema é que o dlsort.sh está sendo chamado duas vezes para cada download. Como a primeira execução do script move o arquivo, estou recebendo um erro "Nenhum arquivo ou diretório" na segunda execução. Não é um grande problema, já que o arquivo faz com que seja para onde deveria ir, mas eu estou trabalhando principalmente neste projeto para me ensinar mais sobre o bash / scripting, então eu gostaria de descobrir o que estou entendendo mal sobre isso comando.

EDIT: adicionando o dlsort.sh

if (echo "" | grep -q '\.jpg$'); then
  mv "" Desktop/targdir/
else
  mv "" Downloads/
fi
    
por Curtis Everingham 09.12.2015 / 20:49

0 respostas