我有以下.sh脚本,这些脚本在下载后会从App Store删除Sierra。这适用于mac osx 10.10或10.11上的任何用户。
但是,是否可以有人添加代码,以便该应用程序(sierra.app)在开始下载后实际上就删除了,而不是当前完成下载时就删除了。
此外,osascript显示消息一旦删除就不会显示。我该如何工作?
这是脚本。
#!/bin/bash
Version=$(sw_vers | grep ProductVersion | tail -c 7 | cut -d . -f 2)
if [[ $Version -ge 12 ]]
then
launchctl unload /Library/LaunchDaemons/net.infor.sierra.plist
rm -f /Library/LaunchDaemons/net.infor.sierra.plist
rm -f /usr/local/bin/sierra.sh
exit 0
else
rm -rf /Applications/Install\ macOS\ Sierra.app/
osascript -e 'tell app "System Events" to display dialog "macOS sierra is not allowed on computers at this time." with title "Technology Notice" buttons {"OK"} default button "OK" giving up after 30'
fi
这是plist。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com /DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>net.infor.sierra.plist</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/sierra.sh</string>
</array>
<key>KeepAlive</key>
<dict>
<key>PathState</key>
<dict>
<key>/Applications/Install macOS Sierra.app/</key>
<true/>
</dict>
</dict>
<key>OnDemand</key>
<true/>
</dict>
</plist>
守护程序在没有GUI的情况下运行。代理可以连接到窗口服务器。
—
fd0
fd0创建测试脚本以创建名为Install macOS Sierra.app的目录时,为什么不仅会删除.app还会显示启动消息?
—
sql1 2013年
sw_vers
,即sw_vers | grep ProductVersion | tail -c 7 | cut -d . -f 2
,只使用awk
本身做的所有东西grep
,tail
和cut
正在做的,例如:Version=$(sw_vers | awk '{FS = "."};/ProductVersion/{print $2}')