0Pricing
Swift Academy · บทเรียน

สคริปต์ Swift (shebang ของ swift) และเครื่องมือบรรทัดคำสั่ง

สร้างสคริปต์ Swift ที่เรียกใช้งานได้ด้วย shebang อ่าน CommandLine.arguments แสดงวิธีใช้ และจบการทำงานด้วยรหัสสถานะที่ถูกต้อง

สคริปต์ Swift (shebang ของ swift) และเครื่องมือบรรทัดคำสั่ง เป็นบทเรียน Swift Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Swift Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Swift Academy มีบทเรียนทั้งหมด 3 บทเรียน

เหตุใดจึงใช้สคริปต์สวิฟต์

สวิฟต์สามารถทำหน้าที่เป็นภาษาเขียนสคริปต์ได้ ใช้ชีแบงเพื่อเรียกใช้ไฟล์โดยตรง แยกวิเคราะห์ CommandLine.arguments และจบการทำงานด้วยรหัสสถานะสำหรับระบบอัตโนมัติ

พื้นฐานชีแบง

เพิ่ม #!/usr/bin/env swift เป็นบรรทัดแรก ทำให้ไฟล์เป็น executable แล้วเรียกใช้เหมือนสคริปต์เชลล์ทั่วไป

// 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) เมื่อสำเร็จ และใช้ค่าที่ไม่ใช่ศูนย์เมื่อเกิดความล้มเหลว พิมพ์ข้อผิดพลาดไปยังเอาต์พุตข้อผิดพลาดมาตรฐานสำหรับกระบวนการประมวลผลแบบต่อเนื่องของเชลล์

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) และเครื่องมือบรรทัดคำสั่ง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Swift Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Swift Academy มีบทเรียนทั้งหมด 3 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “สคริปต์ Swift (shebang ของ swift) และเครื่องมือบรรทัดคำสั่ง”

สร้างสคริปต์ Swift ที่เรียกใช้งานได้ด้วย shebang อ่าน CommandLine.arguments แสดงวิธีใช้ และจบการทำงานด้วยรหัสสถานะที่ถูกต้อง คุณปฏิบัติ Swift Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 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/Obj-C โดยสรุป (ไม่เจาะจง iOS)
  3. การจัดแพ็กเกจไบนารีด้วย SPM
← กลับไปที่ Swift Academy