我希望对于给定的系统启动次数(例如 1 或 2 次系统启动),会出现一条消息。
我会将消息存储在某处,也许存储在变量中:
message='If you finished testing, make sure to remove the testing application.'!'
笔记:
我使用 Ubuntu 服务器 16.04,目标是为无 GUI 系统提供解决方案。
该代码的目的是,如果由于某种原因,我没有记得现在是做某项任务的好时机,那么可以有一种很好的方法来提醒自己完成某项任务。
我认为我应该将变量存储在比 RAM “更深”的地方,也许在我为其创建的文件中,也许是另一种方法。我不知道。
Cron 不好,因为它是重复的,并且不适合给定的执行次数。
这非常有用,以防您
reboot
/关闭/断电——您会收到重要任务的提醒。
澄清
我试图描述一种情况,当用户打开机器时,主提示出现的那一刻,随之而来的是我提到的消息。
答案1
恕我直言,如果没有人看到它,那么“在启动时”这样做是没有意义的,所以最好将其作为您登录的一部分...您可以从您的~/.profile
.该脚本可以检查 1) 测试应用程序是否仍然存在,以及 2) 自上次警告您以来已经经过了一些延迟(例如通过检查 /var/tmp 中某些文件的时间戳),在这种情况下它会再次警告您(并触摸标记文件)。
有了这样一个“不要经常纠缠我”的脚本,您甚至可以在每次 bash 返回命令提示符时运行它,方法是将其放入 bash 的 PROMPT_COMMAND 变量中。
答案2
根据您的系统,您也许可以使用 cron@reboot
然而,systemd 服务文件可能是一种更稳定的方法。
所以:
正如评论中所暗示的:该服务文件...或者类似的东西...并且...
这个脚本:
#!/bin/bash
# Set _endcount to number of times you want to count minus one.
_endcount=2
if [ ! -f count.txt ]; then
echo "1" > count.txt
echo -e "No counter\nInitializing Counter"
exit;
else
mycount=$( cat count.txt )
if [ $mycount = $_endcount ]; then
echo -e "If you finished testing, make sure to remove the testing application!"
echo "1" > count.txt
fi
echo "Warning $mycount, Expires at $_endcount"
count=$(($mycount + 1))
echo "$count" > count.txt
fi
或者类似的东西。解决这个问题大概有 15 种方法,编写这个脚本有 100 种方法。