Скрипты Swift (shebang Swift) и инструменты командной строки
Создавайте запускаемые скрипты Swift с shebang , читайте CommandLine.arguments , выводите справку и завершайте работу с корректными кодами возврата.
«Скрипты Swift (shebang Swift) и инструменты командной строки» — бесплатный урок Swift Academy на CoddyKit. Это урок 1 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 3 уроков всего.
Зачем нужны скрипты Swift?
Swift может выступать в роли скриптового языка. Используйте шебанг, чтобы запускать файлы напрямую, разбирайте CommandLine.arguments и завершайте выполнение с кодами состояния для автоматизации.
Основы шебанга
Добавьте #!/usr/bin/env swift в качестве первой строки, сделайте файл исполняемым, а затем запускайте его как любой скрипт оболочки.
// 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!")Разбор аргументов
Используйте CommandLine.arguments, чтобы читать входные данные. Если обязательные параметры отсутствуют, выводите короткое сообщение об использовании.
// 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)!")
}Небольшой набор параметров
Реализуйте небольшие флаги без зависимостей. Сообщение справки должно быть понятным: --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) }Код завершения
Используйте exit(0) при успехе, а при ошибках — ненулевой код. Выводите ошибки в stderr, чтобы поддерживать конвейеры оболочки.
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)
}Компиляция и распространение
Для распространения скомпилируйте программу с помощью swiftc, чтобы получить двоичный файл. Для более крупных интерфейсов командной строки перейдите на SwiftPM и 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).")Назначение шебанга
Быстрая проверка: что позволяет делать шебанг?
Итоги
Итоги: добавьте шебанг, прочитайте CommandLine.arguments, выведите сообщение об использовании и завершите выполнение с правильными кодами. Компилируйте с помощью swiftc или переходите на SwiftPM для более крупных инструментов.
Часто задаваемые вопросы
Урок «Скрипты Swift (shebang Swift) и инструменты командной строки» бесплатный?
Да — полный текст урока «Скрипты Swift (shebang Swift) и инструменты командной строки» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 3 уроков всего.
Чему я научусь в уроке «Скрипты Swift (shebang Swift) и инструменты командной строки»?
Создавайте запускаемые скрипты Swift с shebang , читайте CommandLine.arguments , выводите справку и завершайте работу с корректными кодами возврата. Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Swift Academy?
Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 3.
Сколько времени занимает урок «Скрипты Swift (shebang Swift) и инструменты командной строки»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Swift Academy?
Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Скрипты Swift (shebang Swift) и инструменты командной строки
- Взаимодействие с C и Objective-C вкратце (без особенностей iOS)
- Упаковка двоичных файлов с помощью SPM