美文网首页
创建CommandTool项目,swift自定义执行脚本项目

创建CommandTool项目,swift自定义执行脚本项目

作者: 独孤流 | 来源:发表于2023-07-22 23:26 被阅读0次

参考:
FengNiao
如何使用Swift来实现一个命令行工具
Swift 开发命令行工具
CommandLineKit 解析命令行参数
Rainbow 输出有颜色的内容
本文完整代码:https://github.com/h42330789/TestCommandLine
一、创建项目
1.1 创建一个新项项目选择macOS->Command Line Tool

image.png

1.2 或者在一个已经存在的项目里新建一个target, +->macOS->Command Line Tool

image.png

二、点击运行,
2.1 直接在xcode里运行,就能在控制台里看到输出内容


image.png

三、 使用命令行调用运行
3.1 找到生成的项目
Product->Show Build Folder In Finder
/Users/xxx/Library/Developer/Xcode/DerivedData/xxxx/Build/Products/Debug/xxxx

11 image.png

3.2 将这个生成的可执行文件拷贝到摸个地方或直接在这里运行就可以
直接在命令行里以相对路径或绝对路径调用执行

# 直接调用执行
/Users/xxx/Library/Developer/Xcode/DerivedData/xxxx/Build/Products/Debug/xxxx
image.png

参数传递与解析

参考:https://github.com/IngmarStein/CommandLineKit
1、设置运行模拟参数,方便debug调试
Product->Scheme->Edit Scheme->Run->Arguments->Arguments Passed On Launch
添加的参数如下 -f aa/bb/test.txt -name jim -age 10

image.png image.png

2、获取入参:

let list = Swift.CommandLine.arguments
# 第一个参数是执行文件的路径,后续就是传入的文件
image.png

命令行执行效果


image.png

引入一个解析参数的库
CommandLineKit
可以使用Podfile的方式引入,也可以使用package的方式引入,我直接使用把代码拖到项目里的方式引入

image.png

代码调用

// 原始的获取参数的方式
let list = Swift.CommandLine.arguments
print(list)

// 使用CommandLineKit获取参数的方式
let cli = CommandLine()
let filePathParam = StringOption(shortFlag: "f", longFlag: "file", required: true,
  helpMessage: "Path to the output file.")
let namePrams = StringOption(shortFlag: "n", longFlag: "name",
  helpMessage: "user name.")
let agePrams = IntOption(shortFlag: "a", longFlag: "age",
  helpMessage: "user age.")

cli.addOptions(filePathParam, namePrams, agePrams)
do {
  try cli.parse()
} catch {
  cli.printUsage(error)
  exit(EX_USAGE)
}

print("File path is \(filePathParam.value ?? "")")
print("name is \(namePrams.value ?? "")")
print("age is \(agePrams.value ?? 0)")

运行效果:


image.png

相关文章

网友评论

      本文标题:创建CommandTool项目,swift自定义执行脚本项目

      本文链接:https://www.haomeiwen.com/subject/ftxtpdtx.html