fswatch | пока читаешь | XARGS запускает команду дважды
Спасибо заранее за любые советы
Я работаю над командой fswatch, чтобы запустить скрипт, когда файлы попадают в папку "Загрузки".
fswatch --event Created Downloads/ | (while read x; do echo $x | xargs -0 bash ./dlsort.sh; done)
Скрипт работает как задумано. Проблема, с которой я столкнулся (я ожидаю), связана с (пока читается x; bit:
Проблема в том, что dlsort.sh вызывается дважды для каждой загрузки. Так как при первом запуске скрипта файл перемещается, я получаю сообщение об ошибке "Нет такого файла или каталога" при втором запуске. Это не имеет большого значения, так как файл делает его, куда он должен идти, но я в основном работаю над этим проектом, чтобы больше узнать о bash / scripting, поэтому я хотел бы выяснить, что я неправильно понимаю по этому поводу команда.
РЕДАКТИРОВАТЬ: добавление dlsort.sh
if (echo "$1" | grep -q '\.jpg$'); then
mv "$1" Desktop/targdir/
else
mv "$1" Downloads/
fi