有这么一个简单的脚本,按照时间间隔改变主题:
#!/bin/bash
HOUR=$(date +%H)
if [ "$HOUR" -ge "19" ] || [ "$HOUR" -lt "7" ]
then
gsettings set org.gnome.desktop.interface gtk-theme "Numix-Dark"
gsettings set org.gnome.shell.extensions.user-theme name "Numix-Dark"
else
gsettings set org.gnome.desktop.interface gtk-theme "Numix"
gsettings set org.gnome.shell.extensions.user-theme name "Numix"
fi
在 cron 中,我每 10 分钟调用一次:
# m h dom mon dow command
*/10 * * * * bash /home/hackerman/toogle-mode.sh
cron 已启动并正在运行(我通过systemctl
实验对其进行了检查),但脚本由于某种原因无法正常工作(cat /var/log/syslog | grep "cron"
输出中没有错误)。但是,从终端句柄开始,脚本就完成了。
可能是什么原因?
问题就在表面上。cron 只能访问一组有限的环境变量,并且要执行我的脚本,必须访问 gsetting,所以我需要一个变量
DBUS_SESSION_BUS_ADDRESS
以下行已添加到脚本中:
感谢这位朋友