![在一段时间不活动后运行脚本](https://linux22.com/image/996405/%E5%9C%A8%E4%B8%80%E6%AE%B5%E6%97%B6%E9%97%B4%E4%B8%8D%E6%B4%BB%E5%8A%A8%E5%90%8E%E8%BF%90%E8%A1%8C%E8%84%9A%E6%9C%AC.png)
我对编写脚本还很陌生,不知道该如何做我想做的事情。为了方便起见,我试图让脚本在屏幕上弹出一个窗口要求用户确认输入。假设它每 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 "$@"