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") }