0Pricing
Swift Academy · Урок

Скрипты 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 — локальная установка не требуется.

Все уроки этого курса

  1. Скрипты Swift (shebang Swift) и инструменты командной строки
  2. Взаимодействие с C и Objective-C вкратце (без особенностей iOS)
  3. Упаковка двоичных файлов с помощью SPM
← Назад к Swift Academy