Swift脚本和命令行参数
在本教程中,我们将讨论如何在Swift中创建脚本。
是的,Swift是一种脚本语言。
我们将构建swift脚本并从命令行运行它们,同时传递参数。
Swift脚本
Apple已将Swift限制为仅用于构建应用程序或者仅在XCode上使用。
我们可以使用Swift从终端运行脚本。
我们还可以在XCode外部编写一个swift文件,并使用终端对其进行编译。
脚本只是即时解释的代码,而编译后的代码将转换为可执行的二进制文件以运行。
创建一个Swift脚本
注意:您可以使用任何编辑器编写以下代码,并以.swift扩展名保存。
我们使用XCode命令行项目只是为了在代码中使用自动完成功能。
在下一个屏幕上设置项目名称。
您已经准备好在导入语句中设置了Foundation Framework的main.swift文件。
我们将在代码中使用Cocoa Framework,因为它也包含Application Kit和Foundation Framework。
(我们的漂亮脚本与应用程序有关)。
要制作Swift脚本,我们的第一行应该是" shebang",如下所示。
#!/usr/bin/env xcrun swift
shebang语法在脚本中以#开头,用于调用我们的环境(在本例中为Swift)并使脚本在Linux操作系统上运行。
代码
以下脚本用于启动指定的应用程序。
#!/usr/bin/env xcrun swift
import Cocoa
var myWorkspace = NSWorkspace.shared
myWorkspace.launchApplication("Android Studio")
NSWorkspace.shared返回Macbook上当前工作空间的实例。launchApplication用于启动指定的应用程序。
运行脚本
要运行脚本,我们需要首先使其可执行。
启动您的终端并在Swift文件上运行chmod + x命令。
chmod +x /path/to/your/file/main.swift
现在要运行脚本,只需从路径运行文件。
/path/to/your/file/main.swift
由于我们指定了Android Studio,因此在本例中,Android Studio的启动如下所示。
处理命令行参数
我们可以在main.swift之后传递命令。
main.swift被视为第一个参数要获取代码中的参数,我们使用以下方法
CommandLine.argc
这将返回参数count整数。
下面的命令返回输入的参数的String数组。
CommandLine.arguments //Array of Strings CommandLine.arguments[0] //main.swift is the first argument.
从脚本启动多个应用程序
现在,让我们改进脚本,以启动多个应用程序。
根据输入的参数名称,将启动一组不同的应用程序。
在下面的swift脚本中,我们将创建两个Swift数组。
第一个将包含一组与工作相关的自定义应用程序。
第二个数组与"读取"相关。
我们会将它们存储在Swift字典中,其键分别为" work"和" read"。
我们的main.swift文件代码如下。
#!/usr/bin/env xcrun swift
import Cocoa
var count = CommandLine.argc
print("Number of arguments is \(count)")
var workMode : Array = ["Android Studio", "XCode"]
var readMode : Array = ["Google Chrome", "Notes","iBooks","A"]
var myDictionary = [String: Array<String>]()
myDictionary["work"] = workMode
myDictionary["read"] = readMode
if count > 1
{
let key = CommandLine.arguments[1]
let apps = myDictionary[key]
if apps?.count != nil{
let myWorkspace = NSWorkspace.shared
for s in apps! {
myWorkspace.launchApplication(s)
}
}
else{
print("Incorrect command")
}
}
else{
print("Missing command")
}

