如何使用Cron在Linux中更改桌面背景
我找到了更改桌面墙纸的终端命令:如何使用Cron在Linux中更改桌面背景,linux,terminal,cron,command-line-interface,wallpaper,Linux,Terminal,Cron,Command Line Interface,Wallpaper,我找到了更改桌面墙纸的终端命令: gsettings set org.gnome.desktop.background picture-uri file:///path/to/your/image.png 但是这个命令在cron和其他台式机如Mate中不起作用pgrep gnome会话方法对我来说没有任何效果 您可以使用dconf更改背景。下面是简单bash脚本的示例: #!/bin/bash WP="$(find ~+ -type f -exec mimetype {} + 2>/d
gsettings set org.gnome.desktop.background picture-uri file:///path/to/your/image.png
但是这个命令在cron和其他台式机如Mate中不起作用<代码>pgrep gnome会话方法对我来说没有任何效果 您可以使用
dconf
更改背景。下面是简单bash脚本的示例:
#!/bin/bash
WP="$(find ~+ -type f -exec mimetype {} + 2>/dev/null | awk -F': +' '{ if ($2 ~ /^image\//) print $1 }' | sort -R | tail -30 | shuf -n 1)"
dconf write /org/mate/desktop/background/picture-filename "'${WP}'"
您可以使用GUI应用程序-dconf编辑器查找特定于发行版的密钥
但要在CRON中使用此脚本,需要设置会话环境变量。命令pgrep gnome session
在Mint和其他非gnome桌面上不起作用。要解决此问题,您需要在系统启动时运行命令来保存特定用户的环境变量:
env > ~/cronenv && sed -i '/%s/d' ~/cronenv
现在,在users home dir中有了cronenv
文件(不带替换变量-%s)。在运行dconf
之前,只需将它们还原回cron即可:
*/1 7-21 * * * cd ~/Pictures && env $(cat ~/cronenv | xargs) /path/to/first/script
使用crontab-e编辑当前用户的cron作业。一切正常 您可以使用
dconf
更改背景。下面是简单bash脚本的示例:
#!/bin/bash
WP="$(find ~+ -type f -exec mimetype {} + 2>/dev/null | awk -F': +' '{ if ($2 ~ /^image\//) print $1 }' | sort -R | tail -30 | shuf -n 1)"
dconf write /org/mate/desktop/background/picture-filename "'${WP}'"
您可以使用GUI应用程序-dconf编辑器查找特定于发行版的密钥
但要在CRON中使用此脚本,需要设置会话环境变量。命令pgrep gnome session
在Mint和其他非gnome桌面上不起作用。要解决此问题,您需要在系统启动时运行命令来保存特定用户的环境变量:
env > ~/cronenv && sed -i '/%s/d' ~/cronenv
现在,在users home dir中有了cronenv
文件(不带替换变量-%s)。在运行dconf
之前,只需将它们还原回cron即可:
*/1 7-21 * * * cd ~/Pictures && env $(cat ~/cronenv | xargs) /path/to/first/script
使用crontab-e编辑当前用户的cron作业。一切正常 我投票关闭这个问题,因为关于Linux的问题属于打开状态。如果你在那里问这个问题,请在这里删除。我投票反对关闭它-把你的精力放在回答问题上,而不是将用户重定向到其他页面。可能重复@jww,这个关于在bash(shell)中编程的问题开发一个跨发行版脚本我投票关闭这个问题,因为关于Linux的问题属于打开状态。如果你在那里问这个问题,请在这里删除。我投票反对关闭它-把你的精力放在回答问题上,而不是将用户重定向到其他页面。可能重复@jww,这个问题是关于在bash(shell)中编程和开发跨发行版脚本的