0Pricing
Swift Academy · Aula

Scripts Swift (shebang do Swift) e ferramentas de linha de comando

Crie scripts Swift executáveis com um shebang , leia CommandLine.arguments , mostre a ajuda e encerre com códigos de status apropriados.

Scripts Swift (shebang do Swift) e ferramentas de linha de comando é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 1 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Swift Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Swift Academy inclui 3 aulas no total.

Por que usar scripts Swift?

Swift pode funcionar como uma linguagem de scripts. Use uma diretiva de interpretação para executar arquivos diretamente, analise CommandLine.arguments e encerre com códigos de status para automação.

Conceitos básicos da diretiva de interpretação

Adicione #!/usr/bin/env swift como a primeira linha, torne o arquivo executável e execute-o como qualquer script de shell.

// First line (shebang) when saved to a file:
// #!/usr/bin/env swift
// Then mark file executable: chmod +x tool.swift
// Run directly: ./tool.swift

print("Hello from a Swift script!")

Análise de argumentos

Use CommandLine.arguments para ler as entradas. Mostre uma mensagem curta de Uso quando faltarem parâmetros obrigatórios.

// Parse arguments: CommandLine.arguments[0] is the script path.
let args = CommandLine.arguments.dropFirst()  // ignore script name
if args.isEmpty {
    print("Usage: greet.swift <name>")
} else {
    let name = args[args.startIndex]
    print("Hello, \\(name)!")
}

Opções simples

Implemente sinalizadores simples sem dependências. Mantenha a ajuda clara: --help, --times N, --shout.

// Very small options parser: --shout and --times
struct Options {
    var shout = false
    var times = 1
    var rest: [String] = []
}

func parse(_ raw: ArraySlice<String>) -> Options {
    var o = Options()
    var it = raw.makeIterator()
    while let token = it.next() {
        switch token {
        case "--help", "-h":
            print("Usage: echo.swift [--shout] [--times N] <text>")
            exit(0)
        case "--shout":
            o.shout = true
        case "--times":
            if let nStr = it.next(), let n = Int(nStr), n > 0 { o.times = n }
        default:
            o.rest.append(token)
        }
    }
    return o
}

let options = parse(CommandLine.arguments.dropFirst())
let text = options.rest.joined(separator: " ").isEmpty ? "echo" : options.rest.joined(separator: " ")
let output = options.shout ? text.uppercased() : text
for _ in 0..<options.times { print(output) }

Status de saída

Use exit(0) para indicar sucesso e um valor diferente de zero para falhas. Imprima os erros em stderr para os fluxos de processamento do shell.

import Foundation

enum CLIError: Error { case invalidInput }

func validateNumber(_ s: String) throws -> Int {
    guard let n = Int(s) else { throw CLIError.invalidInput }
    return n
}

let args2 = CommandLine.arguments.dropFirst()
do {
    guard let first = args2.first else {
        print("Usage: num.swift <int>"); exit(64) // EX_USAGE
    }
    let n = try validateNumber(first)
    print("ok:", n)
    exit(0)
} catch {
    fputs("error: \\(error)\\n", stderr)
    exit(1)
}

Compilar e distribuir

Para distribuição, compile com swiftc para obter um binário. Para CLIs maiores, migre para SwiftPM e swift run.

// You can compile a single-file tool:
// swiftc tool.swift -o tool
// ./tool --help
print("Tip: use swiftc to build a tiny binary; for multi-file CLIs prefer SwiftPM (swift package init).")

Objetivo da diretiva de interpretação

Verificação rápida: O que uma diretiva de interpretação permite?

Recapitulação

Recapitulação: Adicione uma diretiva de interpretação, leia CommandLine.arguments, mostre Uso e encerre com os códigos corretos. Compile com swiftc ou migre para SwiftPM para ferramentas maiores.

Perguntas Frequentes

A aula “Scripts Swift (shebang do Swift) e ferramentas de linha de comando” é grátis?

Sim — o texto completo de “Scripts Swift (shebang do Swift) e ferramentas de linha de comando” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Swift Academy, atualize para CoddyKit PRO. O curso de Swift Academy inclui 3 aulas no total.

O que vou aprender em “Scripts Swift (shebang do Swift) e ferramentas de linha de comando”?

Crie scripts Swift executáveis com um shebang , leia CommandLine.arguments , mostre a ajuda e encerre com códigos de status apropriados. Você pratica Swift Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Swift Academy?

Nenhuma experiência prévia é necessária. Swift Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 3.

Quanto tempo leva a aula “Scripts Swift (shebang do Swift) e ferramentas de linha de comando”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Swift Academy?

Sim. Cada aula de Swift Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Scripts Swift (shebang do Swift) e ferramentas de linha de comando
  2. Interoperabilidade com C/Obj-C em resumo (sem especificidades do iOS)
  3. Empacotando binários com SPM
← Voltar para Swift Academy