2016-10-03 88 views
0

我有一個Launch Daemon和腳本,可以從應用程序商店下載應用程序後刪除應用程序。在Mac OS X上運行bash腳本後不顯示通知消息

因此,應用程序下載並自動刪除下載。應該顯示給最終用戶的通知消息,但不會。誰能幫忙?

下面是腳本:

#!/bin/bash 

Version=$(sw_vers | grep ProductVersion | tail -c 7 | cut -d . -f 2)  

if [ $Version -ge 12 ] 
then 
launchctl unload /Library/LaunchDaemons/net.sierra.plist 
rm -f /Library/LaunchDaemons/net.sierra.plist 
rm -f /usr/local/bin/sierra.sh 
exit 0 

else 
rm -rf /Applications/Install\ macOS\ Sierra.app/ 
osascript -e 'tell app "System Events" to display dialog "macOS Sierra is not allowed on computers at this time."' 
fi 

我想補充一點,如果我創建一個名爲
/應用/安裝\ MACOS \ Sierra.app它自動刪除它,你會得到的消息顯示一個測試目錄。

感謝

+0

你確定路徑和名稱?對於Yosemite,它是「Applications/Installer \ OS \ X \ Yosemite」,對於El Capitain,它是「Applications/Installer \ OS \ X \ El \ Capitain」。除此之外,我認爲這可能是後臺進程。您是否嘗試使用「告訴應用程序」Finder「」。您應該添加的最後一個細節:使用圖標0按鈕{「OK」}默認按鈕「OK」(它會爲您提供僅有1個按鈕而不是取消/確定的停止圖標 – pbell

+0

我會使用find命令來搜索「 Sierra.app「,不管它的路徑是什麼,如果它存在,並且版本號是所需的數字,那麼將其刪除,讓我知道你是否需要語法幫助 – misteralexander

+0

@pbell - 是的路徑和名稱是正確的。也嘗試過「finder」同樣的問題。 – sql1

回答

0

試試這個:

#!/bin/bash 
    VERSION=$(sw_vers | grep ProductVersion | tail -c 7 | cut -d . -f 2) 

    if [[ "$VERSION" -ge '12' ]] 
     then 
      echo "TRUE LOGIC RUNNING" 
      #launchctl unload /Library/LaunchDaemons/net.sierra.plist 
      #rm -f /Library/LaunchDaemons/net.sierra.plist 
      #rm -f /usr/local/bin/sierra.sh 
     else 
      echo "FALSE LOGIC RUNNING" 
      #find '/Applications' -type 'f' -name 'Sierra.app' -exec rm -f '{}' \;   #osascript -e 'tell app "System Events" to display dialog "macOS Sierra is not allowed on computers at this time."' 
    fi 

您可以取消的代碼,一旦你可以看到哪些邏輯部分運行。然後,逐步瀏覽並逐步排查問題,以查看錯誤的位置。

此外,您不需要exit 0,因爲該腳本將自動退出並帶有狀態爲零的代碼。如果你有邏輯測試狀態代碼,你通常會想要把exit 1這樣一些其他正在運行的進程可以將它提供給它的邏輯。

+0

我用你的腳本,並沒有.app刪除或消息出現。我不確定你在哪裏可以看到哪個「邏輯部分正在運行」的意思? – sql1

+0

是的,你應該看到一條消息(在終端中),它表示「TRUE LOGIC RUNNING「或」FALSE LOGIC RUNNING「,你好如果你的「版本」大於或等於'12',你會得到真正的信息,如果你的版本低於12,你會看到錯誤信息。由於這些是「回聲」陳述,你只能看到它們在終端中,而不是在GUI彈出窗口或其他東西。 – misteralexander

+0

此外,我發現[此鏈接](https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/sw_vers.1.html),說明您可以運行「sw_vers -productVersion 「直接而不是一個尾巴,並削減以獲得版本號。只是想減少所需的步驟。 – misteralexander