0Pricing
Swift Academy · Lekcja

Skrypty Swift (swift shebang) i narzędzia wiersza poleceń

Twórz uruchamialne skrypty Swift z użyciem shebang , odczytuj CommandLine.arguments , wyświetlaj pomoc i kończ działanie z właściwymi kodami statusu.

Skrypty Swift (swift shebang) i narzędzia wiersza poleceń to bezpłatna lekcja Swift Academy na CoddyKit. To lekcja 1 z 3. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Swift Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Swift Academy zawiera 3 lekcji w sumie.

Dlaczego skrypty Swift?

Swift może pełnić rolę języka skryptowego. Należy użyć shebang, aby uruchamiać pliki bezpośrednio, analizować CommandLine.arguments i kończyć działanie kodami statusu na potrzeby automatyzacji.

Podstawy shebangu

Należy dodać #!/usr/bin/env swift jako pierwszy wiersz, nadać plikowi uprawnienia do wykonywania, a następnie uruchamiać go jak dowolny skrypt powłoki.

// 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!")

Analizowanie argumentów

Należy używać CommandLine.arguments do odczytywania danych wejściowych. Gdy brakuje wymaganych parametrów, należy wyświetlić krótki komunikat Usage.

// 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)!")
}

Niewielkie opcje

Należy implementować proste flagi bez dodatkowych zależności. Pomoc powinna być przejrzysta: --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 wyjścia

Należy używać exit(0) w przypadku sukcesu, a w przypadku błędów — wartości niezerowych. Błędy należy wypisywać do stderr, aby poprawnie działały potoki powłoki.

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)
}

Kompilowanie i dystrybucja

W celu dystrybucji należy skompilować program za pomocą swiftc, aby uzyskać plik binarny. W przypadku większych interfejsów CLI należy przejść na SwiftPM i używać 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).")

Przeznaczenie shebangu

Szybkie sprawdzenie: Co umożliwia shebang?

Podsumowanie

Podsumowanie: Należy dodać shebang, odczytywać CommandLine.arguments, wyświetlać Usage i kończyć działanie odpowiednimi kodami. Program można kompilować za pomocą swiftc albo przejść na SwiftPM w przypadku większych narzędzi.

Często zadawane pytania

Czy lekcja „Skrypty Swift (swift shebang) i narzędzia wiersza poleceń” jest bezpłatna?

Tak — pełny tekst „Skrypty Swift (swift shebang) i narzędzia wiersza poleceń” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Swift Academy, przejdź na CoddyKit PRO. Kurs Swift Academy zawiera 3 lekcji w sumie.

Co nauczysz się w „Skrypty Swift (swift shebang) i narzędzia wiersza poleceń”?

Twórz uruchamialne skrypty Swift z użyciem shebang , odczytuj CommandLine.arguments , wyświetlaj pomoc i kończ działanie z właściwymi kodami statusu. Ćwiczysz Swift Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Swift Academy?

Nie wymagamy żadnego doświadczenia. Swift Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 3.

Ile czasu zajmuje lekcja „Skrypty Swift (swift shebang) i narzędzia wiersza poleceń”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Swift Academy?

Tak. Każda lekcja Swift Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Skrypty Swift (swift shebang) i narzędzia wiersza poleceń
  2. Współpraca z C/Obj-C w skrócie (bez szczegółów iOS)
  3. Pakowanie plików binarnych za pomocą SPM
← Powrót do Swift Academy