美文网首页
Swift调用系统命令

Swift调用系统命令

作者: 仇志飞 | 来源:发表于2021-09-01 14:15 被阅读0次

Swift调用系统命令。

创建 Swift命令行工具时,发现 Swfit调用系统命令,简陋且繁琐,Creating a command line tool using the Swift Package Manager

Homepage

https://github.com/QiuZhiFei/swift-commands, 使用系统命令字符串,并返回标准输出。

Usage

import Commands

Bash

Execute shell commands.

let result = Commands.Task.run("bash -c ls")

Or

let result = Commands.Bash.run("ls")

Python

Execute python scripts.

let result = Commands.Task.run("python main.py")

Execute python commands.

let result = Commands.Task.run("python -c import base64; print(base64.b64encode('qiuzhifei').decode('ascii'))")

Or

let result = Commands.Python.run("import base64; print(base64.b64encode('qiuzhifei').decode('ascii'))")

Ruby

Execute ruby scripts.

let result = Commands.Task.run("ruby main.rb")

Execute ruby commands.

let result = Commands.Task.run("ruby -e require 'base64'; puts Base64.encode64('qiuzhifei')")

Or

let result = Commands.Ruby.run("require 'base64'; puts Base64.encode64('qiuzhifei')")

Alias

Create a shortcut name for a command.

let node = Commands.Alias("/usr/local/bin/node", dashc: "-e")
let result = node.run("console.log('qiuzhifei')")

Setting global environment variables

Commands.ENV.global["http_proxy"] = "http://127.0.0.1:7890"
Commands.ENV.global.add(PATH: "/Users/zhifeiqiu/.rvm/bin")

Making Commands

let request: Commands.Request = "ruby -v"

let result = Commands.Task.run(request)

Or

let request = Commands.Request(executableURL: "ruby", arguments: "-v")

let result = Commands.Task.run(request)

Change environment variables

var request: Commands.Request = "ruby -v"
request.environment?.add(PATH: "/usr/local/bin")
request.environment?["http_proxy"] = "http://127.0.0.1:7890"
request.environment?["https_proxy"] = "http://127.0.0.1:7890"
request.environment?["all_proxy"] = "socks5://127.0.0.1:7890"

let result = Commands.Task.run(request)

Result Handler

Returns the Commands.Result of running cmd in a subprocess.

let result = Commands.Task.run("ruby -v")
switch result {
case .Success(let request, let response):
  debugPrint("command: \(request.absoluteCommand), success output: \(response.output)")
case .Failure(let request, let response):
  debugPrint("command: \(request.absoluteCommand), failure output: \(response.errorOutput)")
}

Adding Commands as a Dependency

To use the Commands library in a SwiftPM project,
add the following line to the dependencies in your Package.swift file:

let package = Package(
    // name, platforms, products, etc.
    dependencies: [
        .package(url: "https://github.com/qiuzhifei/swift-commands", from: "0.5.0"),
        // other dependencies
    ],
    targets: [
        .target(name: "<command-line-tool>", dependencies: [
            .product(name: "Commands", package: "swift-commands"),
        ]),
        // other targets
    ]
)

CocoaPods (OS X 10.9+)

You can use CocoaPods to install Commands by adding it to your Podfile:

pod 'Commands',        '~> 0.5.0'

QuickStart

git clone https://github.com/QiuZhiFei/swift-commands
cd swift-commands && open Package.swift

References

相关文章

  • Swift调用系统命令

    Swift调用系统命令。 创建 Swift命令行工具时,发现 Swfit调用系统命令,简陋且繁琐,Creating...

  • Swift 做脚本语言用

    本文演示用Swift作为脚本使用,并简单封装调用系统命令的功能。 1、hello world 创建文件hello....

  • 【Swift】:OC和Swift混编

    一、标记二、系统版本检测三、iOS程序的入口四、Swift调用OC五、OC调用Swift 一、标记 // MARK...

  • Python调用外部系统命令

    利用Python调用外部系统命令的方法可以提高编码效率。调用外部系统命令完成后可以通过获取命令执行返回结果码、执行...

  • audit 系统调用审计

    查看系统调用表: ausyscall --dump 添加对kill系统调用的审计命令: auditctl -a a...

  • swift 与 OC 之间的调用

    这次主要看 在已有OC项目中添加swift文件 一、swift调用OC 首先添加swift: 系统弹出询问框,点击...

  • adb常用指令

    adb 命令是adb程序自带的一些命令;adb shell则是调用Android系统的命令,Android系统特有...

  • 2.命令执行漏洞

    定义:攻击者可以随意执行系统命令,命令可以连接执行:&,||,| 命令执行漏洞:直接调用操作系统命令 代码执行漏洞...

  • swift 调用系统导航

  • Swift 4.0 字符串截取,拼接,字符串富文本显示

    字符串截取,调用系统方法 字符串拼接 字符串富文本 字符串截取,调用系统方法 swift 3.2 版本:

网友评论

      本文标题:Swift调用系统命令

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