使用 Bash 脚本自动下载并设置 Bing 壁纸
需要使用 curl
, wget
, 和 jq
的 Bash 脚本代码如下:
#!/bin/bash
#sleep 15
current_date=$(date +%Y%m%d)
#downpath
downpath=/home/ivo/Pictures/BingPics/cn.bing.com/az/hprichbg/rb/
if [ ! -d "$downpath" ]; then
mkdir -p $downpath
fi
cd $downpath
netstat=$(ping -c3 g.cn | grep transmitted | awk '{print $4}')
if [ $netstat == 0 ]; then
echo "/home/ivo/script/wallpapper.sh" | at "now +5 minutes"
else
if [ $(ls | grep $current_date | wc -l) == 0 ]; then
# 使用 http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=en-US 获取 base_url
base_url=$(curl -s 'http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN' | jq -r '.images[0].url')
head_url="http://cn.bing.com"
original_url=$head_url$base_url
# 获取图片名称
Pictures_name=$(echo $original_url | awk -F\/ '{print $NF}')
# 下载图片
wget -c $original_url
fs=_
mv $Pictures_name $current_date$fs$Pictures_name
# 设置 GNOME3 壁纸(这里以 XFCE 为例,需要替换为 GNOME 的相应命令)
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/workspace0/last-image -s $downpath$current_date$fs$Pictures_name
fi
fi
注意:
- 脚本中使用了
xfconf-query
来设置 XFCE 桌面的壁纸,如果你使用的是 GNOME,需要替换为 GNOME 的相应命令来设置壁纸。 - 脚本中通过
ping
命令检查网络连接状态,如果无法连接到g.cn
,则使用at
命令在 5 分钟后再次运行脚本。这部分逻辑可能需要根据你的实际需求进行调整。 - 脚本中的
curl
命令用于获取 Bing 壁纸的 URL,jq
用于解析 JSON 数据,wget
用于下载图片。