簡體   English   中英

在Swift中運行Shell命令

[英]Running Shell Command in Swift

我試圖構建一個swift OSX應用程序,可以運行一些shell命令來掛載用戶請求的VPN。 我嘗試使用NSAppleScript但每次嘗試使用Admin權限運行時都會出錯,因此我決定使用NSTask來調用將以管理員身份運行的蘋果腳本並安裝VPN。

為了通過NSTask調試獲取在swift中運行的shell命令,我創建了一個測試腳本文件,它只有一個簡單的whoami命令,當我在腳本編輯器和終端中使用osascript /Users/amaloney/Desktop/test.scpt運行它時osascript /Users/amaloney/Desktop/test.scpt

但是在我的Swift文件中

import Foundation

let task = NSTask();
task.launchPath = "/usr/bin/osascript"
task.arguments = ["/Users/amaloney/Desktop/test.scpt"]

task.launch()

我繼續得到以下錯誤

腳本錯誤-54。 由於錯誤-1700,無法獲取錯誤文本。

關於如何讓這個工作的任何想法?

謝謝!

供參考 - test.scpt

do shell script "whoami"

我在一個Xcode Playground中運行它,這顯然是問題的根源。 一旦我繼續將此代碼集成到我的OSX應用程序中,它工作正常。

問題似乎與代碼的AppleScript部分有關:

  1. script error -54

    ↳-54文件權限錯誤

  2. Couldn't get error text because of error -1700.

    ↳不能使...成為類型項目。

您的腳本可能會嘗試執行無權執行的操作,並嘗試分配錯誤的類型 - 無需查看腳本或知道它的作用,這是未知的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM