ฟังก์ชัน อาร์กิวเมนต์ และสคริปต์ที่นำกลับมาใช้ซ้ำได้
ทำให้สคริปต์ 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' หากไม่ได้กำหนด$1getopts— แยกวิเคราะห์แฟล็กรูปแบบ-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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- บทนำสู่การเขียนสคริปต์ Bash
- การทำงานเซิร์ฟเวอร์โดยอัตโนมัติ
- การจัดการข้อผิดพลาดและการบันทึกในสคริปต์
- ฟังก์ชัน อาร์กิวเมนต์ และสคริปต์ที่นำกลับมาใช้ซ้ำได้