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

前端之家收集整理的这篇文章主要介绍了怎样使用Swift创建命令行脚本(1)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

▲点击上方“CocoaChina”关注即可免费学习 iOS 开发





一种很好地利用时间的方法是学会将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文件来确保我们所有的排序都是正确的。当然我们也需要给定这个文件相应的执行权限,以便于我们能够直接在命令行上面对它进行调用

运行参数


在命令行上面输入参数-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博客中获得本文的所有源代码.






微信号:CocoaChinabbs


▲长按二维码“识别”关注即可免费学习 iOS 开发

月薪十万、出任CEO、赢娶白富美、走上人生巅峰不是梦

--------------------------------------

商务合作QQ:645047738

投稿邮箱:support@cocoachina.com

原文链接:https://www.f2er.com/swift/821388.html

猜你在找的Swift相关文章