2017-02-08 126 views
-1

我試圖讓它作爲launchd運行,我已經安裝了plist並啓用了監視路徑來檢查學生何時修改遠程管理。錯誤在Bash Shell腳本IF聲明

我想要一個if語句來檢查ARD代理程序是否正在運行並且不運行kickstart命令。

當服務沒有運行時,它可以很好地工作。但是當服務已經運行時,我得到這個錯誤

/Users/user/Desktop/test.sh: line 3: [[: 14682 0 com.apple.RemoteDesktop.agent: syntax error in expression (error token is "0 com.apple.RemoteDesktop.agent") 

這是腳本;

#!/bin/bash 

if [[ $(launchctl list | grep '^\d.*RemoteDesktop.*') -eq "" ]]; then 
    sudo sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -users admin -access -on -privs -all 
else 
    exit 0 
fi 

如果有人能幫助它,將不勝感激。

+0

'launchd'正在運行的腳本'/斌/ sh',不'/斌/ bash',所以' [['不是合法的命令。 – chepner

回答

3

你可以用報價和寫"$(launchctl list ...)",但它可能是清潔劑來做:

#!/bin/bash 

if ! launchctl list | grep -q '^\d.*RemoteDesktop.*'; then 
    sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -users admin -access -on -privs -all 
else 
    exit 0 
fi