Shell 启动和Bing壁纸外壳脚本
我正在尝试使用mac&ubuntu的bing壁纸下载程序(在这里找到:)下载每日bing壁纸并将其设置为背景。如果我通过键入以下内容从终端运行脚本,脚本运行良好:Shell 启动和Bing壁纸外壳脚本,shell,launchd,Shell,Launchd,我正在尝试使用mac&ubuntu的bing壁纸下载程序(在这里找到:)下载每日bing壁纸并将其设置为背景。如果我通过键入以下内容从终端运行脚本,脚本运行良好: sh /Users/noahschneider/Pictures/wallpaper-changer/bing-wallpaper.sh 但是,当我尝试将其设置为启动任务时,它不起作用。launchD plist文件存储在/Users/noahschneider/Library/LaunchAgents/中,如下所示: <?x
sh /Users/noahschneider/Pictures/wallpaper-changer/bing-wallpaper.sh
但是,当我尝试将其设置为启动任务时,它不起作用。launchD plist文件存储在/Users/noahschneider/Library/LaunchAgents/中,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.ideasftw.bing-wallpaper</string>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>/Users/noahschneider/Pictures/wallpaper-changer/bing-wallpaper.sh</string>
</array>
<key>LowPriorityIO</key>
<true/>
<key>Nice</key>
<integer>1</integer>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>8</integer>
<key>Minute</key>
<integer>30</integer>
</dict>
</dict>
</plist>
#!/usr/bin/env bash
PICTURE_DIR="$HOME/Pictures/bing-wallpapers/"
rm -rf /Users/noahlschneider/Pictures/bing-wallpapers
mkdir -p $PICTURE_DIR
ONLYONE=0
while ! ping -W 1 -c 1 8.8.8.8 >&/dev/null; do sleep 10; done
urls=( $(curl -s http://www.bing.com | \
grep -Eo "url:'.*?'" | \
sed -e "s/url:'\([^']*\)'.*/http:\/\/bing.com\1/" | \
sed -e "s/\\\//g") )
for p in ${urls[@]}; do
filename=$(echo $p|sed -e "s/.*\/\(.*\)/\1/")
if [ ! -f $PICTURE_DIR/$filename ] && [ $ONLYONE -eq 0 ]; then
echo "Downloading: $filename ..."
curl -Lo "$PICTURE_DIR/$filename" $p
ONLYONE=$((ONLYONE+1))
else
echo "Skipping: $filename ..."
fi
osascript /Users/noahschneider/Pictures/wallpaper-changer/next-wallpaper.scpt
done
此脚本依次调用一个apple脚本,该脚本更改墙纸,如下所示:
tell application "System Events"
set rotinterval to change interval of current desktop
set change interval of current desktop to 1
delay 1
set change interval of current desktop to rotinterval
end tell
出什么事了?以这种方式运行时,脚本是否没有所需的管理员权限?谢谢大家!