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 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- Swift 스크립트(swift 셰뱅), 명령줄 도구
- C/Obj-C 연동 한눈에 보기(iOS 세부 사항 제외)
- SPM으로 바이너리 패키징하기