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のようなシェルを想定しています。実際にbourneシェルがある場合は、cmd-substitutionにback-ticsを引き続き使用する必要があります。それが必要な場合でも、エコーは必要ありません。

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

上記の検査コードを使用します。

これがお役に立てば幸いです。

于 2012-04-04T22:58:40.077 に答える