আপনি যদি কমান্ড কল করার জন্য বাশ পরিবেশ ব্যবহার করতে চান তবে নীচের ব্যাশ ফাংশনটি ব্যবহার করুন যা লেগোলেসের একটি স্থির সংস্করণ ব্যবহার করে। শেল ফাংশনের ফলাফল থেকে আমাকে একটি চলন্ত নিউলাইনটি সরিয়ে ফেলতে হয়েছিল।
সুইফট 3.0: (এক্সকোড 8)
import Foundation
func shell(launchPath: String, arguments: [String]) -> String
{
let task = Process()
task.launchPath = launchPath
task.arguments = arguments
let pipe = Pipe()
task.standardOutput = pipe
task.launch()
let data = pipe.fileHandleForReading.readDataToEndOfFile()
let output = String(data: data, encoding: String.Encoding.utf8)!
if output.characters.count > 0 {
let lastIndex = output.index(before: output.endIndex)
return output[output.startIndex ..< lastIndex]
}
return output
}
func bash(command: String, arguments: [String]) -> String {
let whichPathForCommand = shell(launchPath: "/bin/bash", arguments: [ "-l", "-c", "which \(command)" ])
return shell(launchPath: whichPathForCommand, arguments: arguments)
}
উদাহরণস্বরূপ বর্তমান ওয়ার্কিং ডিরেক্টরিটির বর্তমান ওয়ার্কিং গিট শাখা পেতে:
let currentBranch = bash("git", arguments: ["describe", "--contains", "--all", "HEAD"])
print("current branch:\(currentBranch)")