Запущение скрипта после определенного количества времени неактивности

Я довольно плохо знаком с записью сценария и не могу найти, как сделать то, что я пытаюсь сделать. Я пытаюсь иметь сценарий, просят подтверждение ввода данных пользователем во всплывающем окне на экране для удобства. Позволяет говорят, что это делает это каждые 24 часа. Если введенный не дан, это отображает текстовый файл (предпочтительно как .doc файл) и завершает отъезд открытого файла. если введенный дан, это сбрасывает в течение еще 24 часов. Ввод данных пользователем не должен быть сложным, это просто для человеческого подтверждения для сброса.

Я надеюсь, что существует что-то там, которое может сделать это. Заранее спасибо за любого и всю справку.

1
задан 13 December 2016 в 04:53

1 ответ

Вот маленький сценарий, который будет отображать всплывающее окно каждые 24 часа, как Вы запросили (sleep 24h часть). При запуске сценария необходимо обеспечить два параметра командной строки - время для ожидания ввода данных пользователем от раскрывающегося и полного пути (!) до файла, который Вы хотите открыть. Пример:

./dialog_timeout.sh 3 /etc/passwd 

, Так как Вы упомянули, это только для человеческой проверки, сценарий только проверяет, непусто ли то, что было возвращено окном ввода значения, (потому что окно ввода значения уничтожается timeout команда после того, как тайм-аут достигнут, таким образом, вход будет пуст). Так, другими словами, Вы должны вводить что-то. Обратите внимание, что при нажатии на отмену или если Вы нажимаете "OK", но Ваш вход был пуст, затем сценарий примет условие сбоя, таким образом, это отобразит документ, Вы хотите.

Примечание: стандартные правила для того, чтобы сделать сценарии осуществимыми применяются - хранят файл предпочтительно в ~/bin и гарантируют, что это - исполняемый файл с chmod +x ~/bin/dialog_timeout.sh

#!/bin/bash
got_input()
{
    result=$(timeout $1 zenity --entry --text "Type something")
    if [ "x$result" != "x" ]
    then
        return 0
    else
        return 1
    fi
}

main()
{
    while true
    do
        if got_input "$1"
        then 
            sleep 24h
        else
            xdg-open "$2"
            exit 1
        fi
    done
}

main "$@"
1
ответ дан 7 December 2019 в 15:43

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

Похожие вопросы: