0Pricing
Linux Server Deployment & SSH Mastery · บทเรียน

ฟังก์ชัน อาร์กิวเมนต์ และสคริปต์ที่นำกลับมาใช้ซ้ำได้

ทำให้สคริปต์ Bash เป็นแบบแยกส่วนและดูแลรักษาได้ง่าย ด้วยการกำหนดฟังก์ชัน ส่งและตรวจสอบอาร์กิวเมนต์จากบรรทัดคำสั่ง ส่งคืนค่า และจัดโครงสร้างสคริปต์ให้ใช้ซ้ำในงานอัตโนมัติของเซิร์ฟเวอร์ได้หลากหลาย

ฟังก์ชัน อาร์กิวเมนต์ และสคริปต์ที่นำกลับมาใช้ซ้ำได้ เป็นบทเรียน Linux Server Deployment & SSH Mastery ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Linux Server Deployment & SSH Mastery และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Linux Server Deployment & SSH Mastery มีบทเรียนทั้งหมด 4 บทเรียน

จากสคริปต์สู่เครื่องมือ

คุณสามารถเขียนสคริปต์ ทำงานให้เป็นอัตโนมัติ และจัดการข้อผิดพลาดได้ ขั้นตอนถัดไปคือการทำให้สคริปต์นำกลับมาใช้ซ้ำได้: จัดระเบียบโค้ดเป็นฟังก์ชันที่รับอาร์กิวเมนต์ เพื่อให้สคริปต์เดียวรองรับสถานการณ์ได้หลายแบบ

นี่คือวิธีเปลี่ยนสคริปต์ชั่วคราวให้กลายเป็นเครื่องมือผู้ดูแลระบบจริง

การกำหนดฟังก์ชัน

ฟังก์ชัน Bash จะจัดกลุ่มคำสั่งไว้ภายใต้ชื่อหนึ่งชื่อ กำหนดฟังก์ชันครั้งเดียวแล้วเรียกใช้ได้หลายครั้ง ส่วนเนื้อหาของฟังก์ชันจะอยู่ระหว่างวงเล็บปีกกา

greet() {
  echo 'Hello from the function!'
}

greet

การส่งอาร์กิวเมนต์ให้ฟังก์ชัน

ฟังก์ชันรับอาร์กิวเมนต์ตามตำแหน่ง ได้แก่ $1, $2 และต่อไปเรื่อย ๆ $@ คืออาร์กิวเมนต์ทั้งหมด ส่วน $# คือจำนวนอาร์กิวเมนต์

greet() {
  echo "Hello, $1! You are $2 years old."
}

greet Alice 30

อาร์กิวเมนต์ระดับสคริปต์

ตัวแปรตามตำแหน่งแบบเดียวกันนี้ใช้ได้กับทั้งสคริปต์ เรียกใช้ ./deploy.sh staging v2 แล้วสคริปต์จะอ่าน $1 เป็น 'staging' และ $2 เป็น 'v2'

#!/bin/bash
ENV=$1
VERSION=$2
echo "Deploying $VERSION to $ENV"

การตรวจสอบอาร์กิวเมนต์

เครื่องมือที่ทนทานจะตรวจสอบข้อมูลนำเข้า ตรวจสอบจำนวนอาร์กิวเมนต์ที่คาดไว้ และออกจากการทำงานพร้อมข้อความวิธีใช้หากมีอาร์กิวเมนต์ไม่ครบ

if [ $# -lt 2 ]; then
  echo "Usage: $0 <env> <version>"
  exit 1
fi

การส่งคืนสถานะจากฟังก์ชัน

ฟังก์ชันส่งคืนสถานะการออกจากการทำงานผ่าน return (0 = สำเร็จ) ผู้เรียกสามารถตรวจสอบสถานะได้ด้วย $? หรือใช้โดยตรงใน if

is_root() {
  [ "$(id -u)" -eq 0 ]
}

if is_root; then echo 'root'; else echo 'not root'; fi

การส่งคืนข้อมูลจากฟังก์ชัน

หากต้องการส่งคืนข้อมูลจริง (ไม่ใช่เพียงสถานะ) ให้ใช้ echo แล้วรับค่าด้วยการแทนที่คำสั่ง ผู้เรียกจะกำหนดผลลัพธ์ให้กับตัวแปร

timestamp() {
  date +%Y%m%d_%H%M%S
}

NOW=$(timestamp)
echo "Backup name: backup_$NOW"

ตัวแปรเฉพาะที่

โดยค่าเริ่มต้น ตัวแปร Bash เป็นตัวแปรส่วนกลาง ซึ่งทำให้เกิดข้อผิดพลาดข้ามฟังก์ชันได้ ประกาศตัวแปรภายในฟังก์ชันด้วย local เพื่อแยกขอบเขตของตัวแปรเหล่านั้น

add() {
  local result=$(( $1 + $2 ))
  echo $result
}

echo "Sum: $(add 3 4)"

ค่าเริ่มต้นและแฟล็กที่มีชื่อ

กำหนดค่าเริ่มต้นที่เหมาะสมด้วยการขยายพารามิเตอร์ และแยกวิเคราะห์แฟล็กเพื่อให้เครื่องมือใช้งานง่ายขึ้น

  • ${1:-default} — ใช้ 'default' หากไม่ได้กำหนด $1
  • getopts — แยกวิเคราะห์แฟล็กรูปแบบ -v, -f file
ENV=${1:-staging}
echo "Target environment: $ENV"

การนำเข้าไลบรารีฟังก์ชัน

ใส่ฟังก์ชันที่ใช้ร่วมกันไว้ในไฟล์ของตนเอง แล้วใช้ source นำเข้าไฟล์นั้นจากหลายสคริปต์ วิธีนี้ช่วยหลีกเลี่ยงการคัดลอกและวางฟังก์ชันช่วยเหลือซ้ำไปทั่ว

# in lib.sh: define log(), is_root(), etc.
source ./lib.sh
log 'Starting deployment'

แนวทางปฏิบัติที่ดีที่สุด

เขียนสคริปต์ที่ดูแลรักษาได้ง่าย:

  • แบ่งตรรกะออกเป็นฟังก์ชันขนาดเล็กที่มีชื่อชัดเจน
  • ตรวจสอบอาร์กิวเมนต์และแสดงวิธีใช้เสมอ
  • ใช้ local กับตัวแปรของฟังก์ชัน
  • แบ่งปันฟังก์ชันช่วยเหลือผ่านไฟล์ไลบรารีที่นำเข้าด้วย source

ตรวจสอบอย่างรวดเร็ว

ทดสอบความรู้เกี่ยวกับฟังก์ชัน Bash ของคุณ

สรุปทบทวน

ขณะนี้คุณสามารถสร้างเครื่องมือ Bash ที่นำกลับมาใช้ซ้ำได้แล้ว:

  • กำหนดฟังก์ชันและเรียกใช้ซ้ำได้
  • ส่งและตรวจสอบอาร์กิวเมนต์ ($1, $@, $#)
  • ส่งคืนสถานะด้วย return และส่งคืนข้อมูลผ่าน echo + การแทนที่คำสั่ง
  • ใช้ตัวแปร local และไลบรารีร่วมที่นำเข้าด้วย source

รูปแบบเหล่านี้เปลี่ยนสคริปต์ที่สร้างขึ้นเฉพาะกิจให้เป็นชุดเครื่องมือทำงานอัตโนมัติที่ดูแลรักษาได้ง่าย

คำถามที่พบบ่อย

บทเรียน “ฟังก์ชัน อาร์กิวเมนต์ และสคริปต์ที่นำกลับมาใช้ซ้ำได้” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ฟังก์ชัน อาร์กิวเมนต์ และสคริปต์ที่นำกลับมาใช้ซ้ำได้” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Linux Server Deployment & SSH Mastery ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Linux Server Deployment & SSH Mastery มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ฟังก์ชัน อาร์กิวเมนต์ และสคริปต์ที่นำกลับมาใช้ซ้ำได้”

ทำให้สคริปต์ Bash เป็นแบบแยกส่วนและดูแลรักษาได้ง่าย ด้วยการกำหนดฟังก์ชัน ส่งและตรวจสอบอาร์กิวเมนต์จากบรรทัดคำสั่ง ส่งคืนค่า และจัดโครงสร้างสคริปต์ให้ใช้ซ้ำในงานอัตโนมัติของเซิร์ฟเวอร์ได้หลากหลาย คุณปฏิบัติ Linux Server Deployment & SSH Mastery ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Linux Server Deployment & SSH Mastery หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Linux Server Deployment & SSH Mastery บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “ฟังก์ชัน อาร์กิวเมนต์ และสคริปต์ที่นำกลับมาใช้ซ้ำได้” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Linux Server Deployment & SSH Mastery นี้ได้ไหม

ได้ บทเรียน Linux Server Deployment & SSH Mastery ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. บทนำสู่การเขียนสคริปต์ Bash
  2. การทำงานเซิร์ฟเวอร์โดยอัตโนมัติ
  3. การจัดการข้อผิดพลาดและการบันทึกในสคริปต์
  4. ฟังก์ชัน อาร์กิวเมนต์ และสคริปต์ที่นำกลับมาใช้ซ้ำได้
← กลับไปที่ Linux Server Deployment & SSH Mastery