2013-10-29 42 views
3

我做了一个简单的bash脚本,使用pcmanfm从我的壁纸目录中为随机图片更改壁纸。这是类似的东西:使用pcmanfm通过crontab更换壁纸

#!/bin/bash 

pcmanfm -w "$(find /home/likewise-open/MAPS/lucas.cardeal/Pictures/Wallpapers -type f | shuf -n1)" 

我想那样自动,所以你把脚本放在crontab上。但它在被crontab调用时没有任何影响。我的脚本有什么问题?我该如何解决它?

感谢

+0

尝试在脚本中提供'pcmanfm'的完整路径。当它由crontab调用时,“ – devnull

+0

”不起作用。“ - 它是如何失败的? 'cron'可以配置为将stderr的输出发送到邮件地址,或者在被调用时将stdout/stderr重定向到文件。 –

+0

我试图用pcmanfm的完整路径提供脚本,但它仍然无法工作。我检查了strerr,但没有任何错误。脚本运行,但它不改变壁纸。我尝试添加一行{> test.txt/home/lscardeal/Desktop},并创建了该文件。有什么问题,我怎么叫pcmanfm命令,我猜 谢谢你的回复 – lscardeal

回答

4

当设置为定时任务脚本会给你一个X11授权错误。为了防止这种情况,只需在您的脚本中加入export DISPLAY=:0export XAUTHORITY=/home/username/.Xauthority(与您的用户名变化username):

#!/bin/bash 

export DISPLAY=:0 
export XAUTHORITY=/home/username/.Xauthority #change `username` with your user name 

pcmanfm -w "$(find /home/likewise-open/MAPS/lucas.cardeal/Pictures/Wallpapers -type f | shuf -n1)"

附录:更新引起了上面的脚本中Lubuntu 16.04和上方突破。有关需要在脚本中指定的其他环境变量,请参阅此计算器答案https://stackoverflow.com/a/46259031/5895207

+0

谢谢你很多嘿嘿。它现在工作! – lscardeal