前言
调用的是我的随机图4K接口 图片都是我精挑细选的 不喜欢的我会删除 且分辨率都是4k 全部采用webp格式
脚本
#!/bin/bash
# 配置文件夹路径
PICTURE_FOLDER="$HOME/Pictures/4k"
WALLPAPER_URL="https://img.darklotus.cn/4k"
# 确保目标文件夹存在
mkdir -p "$PICTURE_FOLDER"
# 获取图片的最终 URL
FINAL_URL=$(curl -s -L -w "%{url_effective}" -o /dev/null "$WALLPAPER_URL")
# 从最终 URL 获取文件名(保留后缀)
FILENAME=$(basename "$FINAL_URL")
# 确保文件名存在且未重复
FILE_PATH="$PICTURE_FOLDER/$FILENAME"
if [[ -f "$FILE_PATH" ]]; then
echo "图片已存在:$FILE_PATH,跳过下载。"
else
# 下载图片并保存到指定目录
curl -s -o "$FILE_PATH" "$FINAL_URL"
echo "图片已下载并保存为:$FILE_PATH"
fi
# 设置壁纸
osascript <<EOF
tell application "System Events"
set desktopCount to count of desktops
repeat with desktopNumber from 1 to desktopCount
tell desktop desktopNumber
set picture to POSIX file "$FILE_PATH"
end tell
end repeat
end tell
EOF
echo "壁纸已设置为 $FILE_PATH"
脚本介绍
这个脚本用于从 https://img.darklotus.cn/4k
获取随机的 4K 图片,并将其设置为 macOS 的桌面壁纸。脚本会下载图片并保存到本地 ~/Pictures/4k
文件夹中,并确保如果当天的图片已经下载过,它不会重复下载。同时,脚本会把下载的图片设置为桌面壁纸。
1. 功能概述
- 从
https://img.darklotus.cn/4k
获取随机的 4K 图片。 - 下载图片并保存在
~/Pictures/4k
文件夹。 - 确保图片名和格式保持一致,不会覆盖已下载的图片。
- 自动将下载的图片设置为桌面壁纸。
2. 先决条件
- macOS 操作系统。
- 已安装
curl
(通常 macOS 默认已经安装)。 - 必须有
osascript
权限来更改桌面壁纸。
3. 脚本说明
- PICTURE_FOLDER:指定图片保存的文件夹路径。默认为
~/Pictures/4k
。 - WALLPAPER_URL:指定访问图片的接口 URL,默认为
https://img.darklotus.cn/4k
。 - FINAL_URL:通过
curl
请求获取的图片最终 URL。 - FILENAME:提取图片文件名(保持原有文件名和格式)。
- FILE_PATH:下载的图片存储路径。
- osascript:通过 AppleScript 设置下载的图片为桌面壁纸。
4. 脚本步骤
- 创建保存目录:首先检查
~/Pictures/4k
文件夹是否存在。如果不存在,将自动创建。 - 获取图片 URL:使用
curl
请求https://img.darklotus.cn/4k
接口,获取图片的实际 URL。 - 下载图片:如果该图片尚未下载过,脚本将下载图片并保存到指定文件夹。
- 设置壁纸:下载的图片将自动设置为 macOS 的桌面壁纸。
5. 使用步骤
下载脚本:
- 复制上述脚本内容,并将其保存为
set_daily_wallpaper.sh
文件。 - 推荐将脚本保存到一个常用目录,比如
~/www/script/
。
- 复制上述脚本内容,并将其保存为
赋予脚本执行权限:
在终端中执行以下命令为脚本赋予执行权限:chmod +x /path/to/set_daily_wallpaper.sh
手动运行脚本:
你可以通过终端手动运行脚本,下载图片并设置壁纸:/path/to/set_daily_wallpaper.sh
设置定时任务:
如果你希望脚本每天自动运行,或者每小时执行一次,可以通过cron
设置定时任务:打开
crontab
编辑器:crontab -e
在文件中添加以下行,每小时执行一次:
0 * * * * /path/to/set_daily_wallpaper.sh
- 保存并退出编辑器。
注意:根据你的编辑器不同,保存和退出的方式也会有所不同。如果你使用的是
nano
,按Ctrl + X
,然后按Y
保存退出。如果是vi
,则输入:wq
保存退出。- 查看下载的图片:
图片将保存到~/Pictures/4k
文件夹中,文件名和格式会保持与服务器上的一致。 - 检查壁纸是否更新:
执行脚本后,检查桌面,确保图片已经更新为新下载的图片。
6. 常见问题
问题:为什么图片下载后没有保存?
- 解答:检查目标文件夹是否具有写权限,并确认图片是否已经下载过(如果文件已存在,脚本会跳过下载)。
问题:壁纸没有更新?
- 解答:确保脚本中的
osascript
部分执行正常,并且你的 macOS 有权限修改桌面壁纸。
- 解答:确保脚本中的
7. 脚本调试
如果脚本没有按预期工作,可以通过以下命令调试:
bash -x /path/to/set_daily_wallpaper.sh
这将显示每个步骤的详细执行信息,帮助定位问题。
总结
这个脚本可以让你轻松自动获取并设置 4K 随机图片作为桌面壁纸,支持定时任务功能,确保你的壁纸始终是最新的图像。
设置计划任务
上面是我用gpt快速写的介绍文档 看一看就行了 我的脚本是保存到用户/www/script/下的set_daily_wallpaper.sh
给他了执行权限后 就可以加入计划任务了
使用 crontab -e 编辑当前用户的任务。
crontab -e
粘贴
0 * * * * /Users/lian/www/script/set_daily_wallpaper.sh
路径自己改为你脚本的路径
使用 crontab -l 确认任务是否成功添加。
crontab -l
默认编辑crontab是采用的vim mac终端粘贴好后 esc 然后输入:wq 回车保存就行了