Mac OS X 10.10 Yosemite Bash脚本默认读取生成域/默认对不存在错误

时间:2016-04-18 12:21:33

标签: macos bash safari

我正在尝试在Mac OS X 10.10 Yosemite上查看Safari中的默认主页。

在我的vanilla系统上,主页实际上没有设置,所以首先我使用命令强制设置HomePage:

defaults write com.apple.Safari.plist HomePage www.google.co.uk

现在我可以使用此命令读取HomePage设置:

defaults read com.apple.Safari.plist HomePage

www.google.co.uk

是输出。

我需要使用由Microsoft SCCM提供和执行的Bash脚本为控制台用户执行此操作。 Microsoft SCCM客户端在计算机的系统帐户下运行,因此运行上面的defaults read命令不会报告登录用户的设置。要解决此问题,我使用的命令首先确定登录用户的userID,然后使用另一个命令读取HomePage值,使用Safari plist文件的登录用户(如果适用)实例的完整路径。

如果我手动执行前四行,预期的主页将存储在变量myuserhompage中,并按预期显示。

myuser=$(stat -f%Su /dev/console)
myuserhompage="$(defaults read /users/$myuser/library/preferences/com.apple.Safari HomePage)"
if [[ ${myuserhompage} == "www.google.co.uk" ]] ;
then
  echo "homepage_set"
  exit 0
else
  echo "homepage_not_set"
  exit 1
fi

但是,当我在Bash脚本中运行相同的代码行时,我看到域/默认对不存在错误。

1 个答案:

答案 0 :(得分:0)

通过直接将文本重新键入OS X VM,而不是依赖于从Windows主机复制/粘贴,我现在看来终端命令行和脚本命令之间的一致性。这解决了我的问题。它还强调了我已相应更新的结果评估问题。感谢。