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
- Scripts Swift (shebang do Swift) e ferramentas de linha de comando
- Interoperabilidade com C/Obj-C em resumo (sem especificidades do iOS)
- Empacotando binários com SPM