0Pricing
Swift Academy · 강의

Swift 스크립트(swift 셰뱅), 명령줄 도구

셰뱅 이 있는 실행 가능한 Swift 스크립트를 만들고, CommandLine.arguments 를 읽고, 도움말을 출력하며, 올바른 상태 코드로 종료합니다.

Swift 스크립트(swift 셰뱅), 명령줄 도구은(는) CoddyKit의 무료 Swift Academy 강의입니다. 이것은 3개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 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)을 사용하고, 실패에는 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로 컴파일하여 바이너리를 만드십시오. 규모가 큰 CLI는 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 스크립트(swift 셰뱅), 명령줄 도구” 강의는 무료인가요?

네 — “Swift 스크립트(swift 셰뱅), 명령줄 도구” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Swift Academy 강의 전체를 잠금 해제할 수 있습니다. Swift Academy 강의에는 총 3개의 강의가 포함되어 있습니다.

“Swift 스크립트(swift 셰뱅), 명령줄 도구”에서 뭘 배우나요?

셰뱅 이 있는 실행 가능한 Swift 스크립트를 만들고, CommandLine.arguments 를 읽고, 도움말을 출력하며, 올바른 상태 코드로 종료합니다. 브라우저에서 직접 실행하는 실습 코드로 Swift Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Swift Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Swift Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 3개 중 1번째 강의입니다.

“Swift 스크립트(swift 셰뱅), 명령줄 도구” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Swift Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Swift Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. Swift 스크립트(swift 셰뱅), 명령줄 도구
  2. C/Obj-C 연동 한눈에 보기(iOS 세부 사항 제외)
  3. SPM으로 바이너리 패키징하기
← Swift Academy(으)로 돌아가기