即使启用了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
答案 0 :(得分: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`"
并使用上面的检查代码。
我希望这会有所帮助。