转载

怎样使用Swift创建命令行脚本

怎样使用Swift创建命令行脚本

  • 本文由CocoaChina译者自来也大人( 博客 )翻译,校对BenBeng( 博客 ),欢迎指正。

  • 作者: Ben Snider

  • 原文: Using Swift To Make Command Line Scripts - Part 1

一种很好地利用时间的方法是学会将Swift作为一种脚本语言来使用,可以用这种脚本语言来编写一些简单的命令行工具。

关于如何写Swift命令行脚本的序列包括两部分,这里先介绍第一部分。在这一部分,我们将一起来探究如何在命令行上执行Swift脚本,解析命令行参数以及怎么样导入依赖库等。

在该系列的第二部分中,我们将编写一个简单的Swift脚本来获得最新的比特币的价格,或者也可以求出每小时比特币的平均价格。这个脚本将使用 Bitstamp API 来获取需要的数据。在这两篇博文中,我着重使用Swift2.0来实现,所以为了运行我的这些小例子,你需要Xcode7以上版本,并且你的Xcode还要安装命令行工具哟。

Hello World

首先,我们来谈谈在创建Swift脚本时的一些选项。其实在命令行上面执行Swift脚本还是很简单的,可能你首先想到的是Python或者是Ruby等脚本的运行方式。下面是一个完整的Swift版Hello World脚本:利用下面的代码创建一个hello_world.swift文件,然后赋予其执行权限,就是建Hello World脚本所需的全部步聚。

#!/usr/bin/swift print("Hello World!")

那么怎么样在命令行中运行这段代码呢?很简单,你只要像运行其他的可运行的Bash或者ruby脚本一样,在命令行中输入下面命令即可:

$ ./hello_world.swift

命令行就会给你打印出:Hello World! 就是这么简单。

参数解析和Carthage框架

为了得到一些不错的命令行参数解析功能,并展示如何使用命令行脚本将其导入库,我将利用便利的 OptionKit 库。这个库可以用 Carthage 来搭建。在此之前,确保你已经安装了Carthage(使用 Homebrew 这个操作就像brew install carthage那么简单)。假如你已经安装了Carthage,那我们就可以直接运行以下命令给我们的脚本设置一个文件夹,然后初始化文件Cartfile,然后开始对Carthage进行编译:

mkdir swift_btc_script cd swift_btc_script echo 'github "nomothetis/OptionKit" ~> 1.0' > Cartfile cartage update

这时候,Carthage将OptionKit复制下来,并且作为一个框架保存到swift_btc_scripit目录下的Carthage/Build/Mac文件夹里面。大功告成!我们已经创建好一个编译库,能够导入我们所创建的Swift脚本。接下来我将用下面的代码新建一个options.swift文件来确保我们所有的排序都是正确的。当然我们也需要给定这个文件相应的执行权限,以便于我们能够直接在命令行上面对它进行调用。

怎样使用Swift创建命令行脚本

运行参数

在命令行上面输入参数-s或者—say执行我们所创建的文件,将返回我们给它设定的相应结果,接着在命令行中输入-h或者—help,或者你干脆什么都不输入,命令行将返回一些帮助信息给我们。如下面这些就是我们脚本直接输出的信息:

$ ./btc.swift --not-a-command Invalid option: --not-a-command  $ ./options.swift -h usage: btc.swift [-s|--say] [-h|--help]  $ ./options.swift --say Well hello there pilgrim. Well hello there pilgrim.

下一步

到这一步,我们已经设置了一个小的命令行框架了,那么我们需要实现我们之前所说的获取比特币的价格,就是非常简单的事情咯。在下一章中,你将看到我们是如何使用命令行的Swift脚本来调用我们所熟知的iOS和MAC OS 的Foundation类库,帮助我们获取比特币的价格的。

你可以从我的 Github博客 中获得本文的所有源代码.

  • 更多译者翻译文章,请查看: http://www.cocoachina.com/special/translation/

  • 本文仅用于学习和交流目的,转载请注明文章译者、出处和本文链接。

  • 感谢 博文视点 对本期活动的支持

怎样使用Swift创建命令行脚本

原文  http://www.cocoachina.com/swift/20160121/14966.html
正文到此结束
Loading...