inotifywait работает по команде, но не по bash

Моя цель: запустить Rscript при создании файла в каталоге /home/gabriel/data

Вот что у меня с inotiwait

$ inotifywait -m -e create /home/gabriel/data |
  while read -r filename event; do 
    Rscript /home/gabriel/script/updatedb.R;
  done

Сначала я запускаю эти строки на терминале, затем создаю один новый файл на /home/gabriel/data, Когда файл создан, я ясно вижу, что мой Rscript работал правильно, потому что база данных обновляется.

Однако, когда я использую один и тот же код в bash, мой Rscript не запускается. Вот мой удар:

#!/bin/sh
inotifywait -m -e create /home/gabriel/data |
  while read -r filename event; do 
    Rscript /home/gabriel/script/updatedb.R;
  done
Setting up watches.
Watches established.

Который я называю inotifytest.sh и сохранены на /home/gabriel, Я дал разрешение на выполнение этой команды:

$ chmod +x inotifytest.sh

А затем начните запускать bash:

$ sh inotifytest.sh
: not found.sh: 2: inotifytest.sh:
Setting up watches.
Watches established.

Когда я создаю новые файлы, моя база данных не обновляется, что означает, что мой Rscript не запускался.

Я, вероятно, делаю это неправильно на многих уровнях, но я не вижу, где. Спасибо за помощь.

0 ответов

Другие вопросы по тегам