0

即使启用了 ARD,脚本也会继续运行 else 语句。如果 $ardstatus = enabled,无法弄清楚如何退出

#!/bin/sh
#check if users have ARD enabled or disabled
ardstatus="echo `cat /private/etc/RemoteManagement.launchd`"
if [ "$ardstatus" = enabled ]; then
    echo "ARD is enabled"
else
    #if disabled enable it for specifiedUsers which is determined in the next command
    sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -configure -allowAccessFor -specifiedUsers
    #configure ARD
    sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -configure -users admin,administrator -access -on -privs -ControlObserve -ObserveOnly -TextMessages
fi
4

1 回答 1

0

所以这意味着 ardstatus 中出现的内容比您想象的要多,很可能是换行符。尝试这个

 ardstatus=$( < /private/etc/RemoteManagement.launchd )

如果那不能解决它,那么“检查”你的变量

 echo "ardstatus=XXX${ardstatus}XXX"

这假设一个 bash 或 ksh 之类的 shell,如果你真的有一个 bourne shell,那么你需要继续使用 back-tics 来替换 cmd。如果你需要它,你仍然不需要回声,所以这样做

ardstatus="`cat /private/etc/RemoteManagement.launchd`"

并使用上面的检查代码。

我希望这有帮助。

于 2012-04-04T22:58:40.077 回答