Crontab运行但没有任何反应

时间:2017-12-17 20:20:20

标签: bash shell ubuntu cron

我想模拟壁纸幻灯片(图片从unsplash.com获取)几乎与Windows 7相同,但在Ubuntu上。因此,为此我决定使用unsplash-wallpaper

我创建了一个bash脚本.refresh-wallpaper.sh并将其放置在home direcotry中:

#!/bin/bash
unsplash-wallpaper -r --dir "~/Pictures/wallpapers"

然后我安装了一个crontab:

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
* * * * * sh ~/.refresh-wallpaper.sh >/dev/null 2>&1

该脚本由crond运行但没有任何反应

Dec 17 22:12:01 pcname CRON[11933]: (username) CMD (sh ~/.refresh-wallpaper.sh >/dev/null 2>&1)

..但它通过终端手动启动时有效:

username@pcname:~$ sh .refresh-wallpaper.sh 
Request https://source.unsplash.com/random
Downloading [==================================================================]
✔︎ Image saved to /home/username/Pictures/wallpapers/wallpaper-photo-1511620356826-e2ed21a61991.jpg
Check it out.

我做错了什么?感谢您的任何互动!

EDIT1 :它有效,因为保存了新图像并将输出重定向到日志,但壁纸不会在桌面上查看。

1 个答案:

答案 0 :(得分:1)

我认为脚本中的引号会阻止此行中~的扩展:

unsplash-wallpaper -r --dir "~/Pictures/wallpapers"

我建议使用:

unsplash-wallpaper -r --dir "$HOME/Pictures/wallpapers"