在一段时间不活动后运行脚本

在一段时间不活动后运行脚本

我对编写脚本还很陌生,不知道该如何做我想做的事情。为了方便起见,我试图让脚本在屏幕上弹出一个窗口要求用户确认输入。假设它每 24 小时执行一次。如果没有输入,它会显示一个文本文件(最好是 .doc 文件)并终止,使文件保持打开状态。如果输入了,它会再重置 24 小时。用户输入不必太复杂,只需人工确认即可重置。

我希望有什么东西可以做到这一点。提前感谢您提供的所有帮助。

答案1

这是一个小脚本,它将每 24 小时显示一次弹出窗口,正如您所要求的那样(部分sleep 24h)。启动脚本时,您必须提供两个命令行参数 - 等待弹出窗口的用户输入的时间和要打开的文件的完整路径(!)。示例:

./dialog_timeout.sh 3 /etc/passwd 

由于您提到这只是为了人工验证,因此脚本仅检查输入对话框返回的内容是否为非空(因为输入对话框timeout在超时后会被命令终止,因此输入将为空)。换句话说,您必须输入一些内容。请注意,如果您单击“取消”或单击“确定”但输入为空,则脚本将假定失败情况,因此它将显示您想要的文档。

注意:使脚本可行适用的标准规则 - 最好将文件存储在~/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 "$@"

相关内容