查看spctl 的source code,spctl --status 命令 将返回assessments enabled 或assessments disabled。但是,如果它禁用,那么do shell script "spctl --status" 会以error "assessments disabled" number 1 退出,您需要以某种方式对其进行说明。
do shell script "spctl --status"
--> error "assessments disabled" number 1
所以,为了简单起见,以下示例 AppleScript 代码 只是简单地切换@987654330 的状态 @ 基于它状态:
if (do shell script "spctl --status; exit 0") is "assessments disabled" then
do shell script "spctl --master-enable" with administrator privileges
else
do shell script "spctl --master-disable" with administrator privileges
end if
使用; exit 0 处理error "assessments disabled" number 1 时禁用spctl 时的示例输出:
do shell script "spctl --status; exit 0"
--> "assessments disabled"
do shell script "spctl --master-enable" with administrator privileges
如您所见,通过在spctl --status 之后使用; exit 0,它会停止error "assessments disabled" number 1 并允许脚本继续运行。
当然有不止一种方法可以捕获错误,但是,这个示例 AppleScript 代码,这只是切换spctl 的状态,我已经展示了它的错误处理,它简单明了,不需要更详细。
否则,您将不得不以不同的方式对其进行编码,使用包裹在do shell script "spctl --status 命令 周围的try 语句 和on error 处理程序。