Сценарий zenity + inotify

Я хотел бы иметь простой скрипт для уведомления пользователя на экране, каждый раз, когда в общей папке создается новая папка или файл. Вывод должен выглядеть так: "У вас есть новый файл / папка с именем newfile/newfolder". Я использую этот скрипт, но я не могу поместить имя newfile / newfolder в вывод zenity.

while inotifywait -r -e create ~/Documents/Process
do
    zenity --warning -- ????
done

спасибо Djames

1 ответ

Решение

Вы можете попробовать похожий скрипт:

while true
do
    fileName=$(inotifywait -r -e create ~/Documents/Process | sed -r 's/^.*CREATE(,ISDIR)*\s+(.*)$/\2/g')
    zenity --warning --text="You have a new file/folder named $fileName"
done

fileName переменная содержит имя извлеченного файла, inotifywait обнаруживает и выводит. (Это отфильтровано из вывода с помощью sed команда.)

Тогда $fileName отображается zenity с использованием --text= переключатель.

Эти две строки выполняются в бесконечном цикле, что позволяет обнаруживать другие события создания. Используйте CTRL + C, чтобы отменить часы.

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