ลด 50% ทุกแผน มีเวลาจำกัด เริ่มต้นที่ $2.48/mo
เหลือเวลาอีก 11 นาที
เซิร์ฟเวอร์และระบบปฏิบัติการ

อธิบายฟังก์ชัน Bash: ไวยากรณ์ ตัวอย่าง และกรณีการใช้งาน

เคลลี่ วัตสัน By เคลลี่ วัตสัน อ่าน 11 นาที อัปเดตเมื่อวันที่ 14 ธันวาคม 2025
ภาพประกอบ 3 มิติแบบนามธรรมของบล็อกโค้ดสีน้ำเงินเรืองแสงที่ประกอบเป็นโครงสร้างโมดูลาร์ ซึ่งแสดงถึงฟังก์ชัน Bash

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

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

คู่มือนี้จะอธิบายเกี่ยวกับไวยากรณ์พื้นฐานไปจนถึงกรณีการใช้งานขั้นสูง คุณจะได้เรียนรู้วิธีการประกาศฟังก์ชัน ส่งพารามิเตอร์ จัดการค่าที่ส่งคืน และดูตัวอย่างเชิงปฏิบัติ 10 ตัวอย่างที่คุณสามารถใช้ในสคริปต์ของคุณเอง

TL;ดร

  • ฟังก์ชัน Bash เป็นชื่อบล็อกโค้ดที่คุณสามารถนำมาใช้ซ้ำได้ทั่วทั้งสคริปต์ของคุณ
  • กำหนดฟังก์ชันโดยใช้ function_name() { คำสั่ง; } ไวยากรณ์
  • ผ่านการโต้แย้งโดยใช้ $1, $2, $3 พารามิเตอร์ตำแหน่ง
  • ฟังก์ชันปรับปรุงความสามารถในการอ่านโค้ด ความเป็นโมดูล และการบำรุงรักษา
  • ใช้ กลับ เพื่อออกจากฟังก์ชันและสื่อสารรหัสสถานะ (0 = สำเร็จ ไม่ใช่ศูนย์ = ล้มเหลว)
  • สามารถใช้ฟังก์ชั่นร่วมกันระหว่างสคริปต์โดยใช้ แหล่งที่มา or ส่งออก -f
  • ตัวอย่างที่เป็นประโยชน์ ได้แก่ การสำรองข้อมูลไฟล์ การตรวจสอบดิสก์ การตรวจสอบอินพุต และการตรวจสอบบริการ

การเขียนสคริปต์ Bash คืออะไร?

ภาพประกอบ 3 มิติของสโครลดิจิทัลที่มีโค้ด Bash เรืองแสงเขียนอยู่ ซึ่งแสดงถึงการทำงานอัตโนมัติของการเขียนสคริปต์ Bash

การเขียนสคริปต์ Bash คือวิธีการทำงานอัตโนมัติโดยใช้ Bash Shell มันทำหน้าที่เป็นอินเทอร์เฟซบรรทัดคำสั่งเริ่มต้นสำหรับ Linux และยังคงเป็นเครื่องมือมาตรฐานบน macOS สคริปต์ Bash คือโปรแกรมที่เข้ารหัสในภาษาสคริปต์ Bash ซึ่งสามารถดำเนินการในเทอร์มินัลหรือเป็นไฟล์สคริปต์แบบสแตนด์อโลน

กับ การใช้งานเดสก์ท็อป Linux เติบโตอย่างต่อเนื่อง และระบบปฏิบัติการที่ครอบงำสภาพแวดล้อมเซิร์ฟเวอร์ทั่วโลก ทักษะการเขียนสคริปต์ Bash กลายเป็นสิ่งที่มีคุณค่าสำหรับผู้เชี่ยวชาญด้านไอที ภาษานี้ทำงานร่วมกับเครื่องมือ DevOps ได้ดี เช่น Docker, Kubernetes และไปป์ไลน์ CI/CD

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

ฟังก์ชั่นทุบตีคืออะไร?

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

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

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

e จะครอบคลุมรูปแบบการใช้งานเฉพาะหลายประการ รวมถึง ง่าย_ฟังก์ชั่น สำหรับตรรกะพื้นฐาน ง่าย_อินพุต สำหรับการจัดการข้อโต้แย้ง และโครงสร้างขั้นสูง เช่น fibonnaci_recursion.

พื้นฐานของฟังก์ชัน Bash มีความสำคัญสำหรับผู้ดูแลระบบหรือวิศวกร DevOps ที่ทำงานด้วยระบบอัตโนมัติ ส่วนต่อไปนี้จะครอบคลุมรายละเอียดแต่ละประเภทเหล่านี้

เหตุใดจึงต้องใช้ฟังก์ชัน Bash

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

ตอนนี้ครอบคลุมคำจำกัดความของฟังก์ชัน Bash แล้ว เรามาทบทวนข้อดีหลัก ๆ กัน ส่วนนี้จะช่วยให้คุณเข้าใจว่าฟังก์ชันใดมีประโยชน์มากที่สุด

การนำกลับมาใช้ใหม่ได้

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

สิ่งนี้ทำให้โค้ดของคุณมีประสิทธิภาพมากขึ้นและประหยัดเวลาโดยกำจัดความซ้ำซ้อน การดูแลรักษาโค้ดจะง่ายขึ้น เนื่องจากคุณเพียงแค่ต้องเปลี่ยนฟังก์ชันในที่เดียวเท่านั้น

ความสามารถในการอ่าน

สคริปต์ที่ซับซ้อนอาจถอดรหัสได้ยาก ฟังก์ชัน Bash แก้ปัญหานี้โดยการแบ่งสคริปต์ของคุณออกเป็นส่วนย่อยๆ ที่สามารถจัดการได้มากขึ้น

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

ความเป็นโมดูลาร์

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

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

พารามิเตอร์ฟังก์ชันทุบตี

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

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

จะใช้ฟังก์ชั่น Bash ได้อย่างไรและที่ไหน?

แผนภูมิโฟลว์แก้ว 3D แสดงการเรียกใช้สคริปต์ที่แยกออกเป็นบล็อกฟังก์ชันแล้วส่งคืน แสดงภาพวิธีใช้ฟังก์ชัน Bash ในโฟลว์ลอจิก

ตอนนี้ เรามาทำความเข้าใจทางเทคนิคเล็กน้อยเกี่ยวกับคำจำกัดความของเรา และเริ่มต้นด้วยตัวอย่างสั้นๆ ของวิธีสร้างฟังก์ชัน Bash ไวยากรณ์ต่อไปนี้สามารถใช้ได้ในสภาพแวดล้อมที่ใช้ Unix หากคุณทำงานบน Windows คุณก็สามารถทำได้ ติดตั้ง Linux Bash บน Windows 10 เพื่อทำตามตัวอย่างเหล่านี้

การสร้างฟังก์ชัน Bash

เริ่มต้นด้วยการใช้โครงสร้างคำสั่งต่อไปนี้:

function_name () {

    #คำสั่งอยู่ที่นี่

}

 

เมื่อคุณสร้างฟังก์ชันแล้ว คุณสามารถใช้มันในโค้ดของคุณได้ตลอดเวลา นี่คือตัวอย่างการทำงาน:

ทักทาย () {

    สะท้อน “สวัสดี $1!”

}

 

เรียกใช้ฟังก์ชันนี้ด้วย ทักทายชาวโลก เพื่อส่งออก "Hello, World!" ที่ $1 แสดงถึงอาร์กิวเมนต์แรกที่ส่งไปยังฟังก์ชัน

ต่อไปนี้คือตัวอย่างที่เป็นประโยชน์เพิ่มเติมบางส่วนที่คุณสามารถใช้ในสคริปต์ของคุณเอง:

# สร้างการสำรองข้อมูลของไฟล์ใด ๆ

สำรอง_ไฟล์ () {

    cp “$1” “$1.บัค”

    echo “สร้างข้อมูลสำรองแล้ว: $1.bak”

}

 

# ตรวจสอบว่ามีไดเร็กทอรีอยู่หรือไม่ สร้างหากไม่มี

ให้แน่ใจว่า_dir () {

    ถ้า [ ! -d “$1” ]; แล้ว

        mkdir -p “$1”

        echo “สร้างไดเร็กทอรี: $1”

    fi

}

 

# บันทึกข้อความพร้อมการประทับเวลา

log_message () {

    เสียงสะท้อน "[$(วันที่ '+%Y-%m-%d %H:%M:%S')] $1"

}

 

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

สิ่งจำเป็นสำหรับไวยากรณ์ของฟังก์ชัน

ฟังก์ชั่นทำงานเหมือนกับมินิสคริปต์ภายในสคริปต์หลักของคุณ แต่จะแชร์หน่วยความจำของเชลล์ คำนึงถึงพฤติกรรมเฉพาะทั้งสามนี้เมื่อเขียน

ขอบเขตที่เปลี่ยนแปลงได้ (ระดับท้องถิ่นและระดับโลก)

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

ท้องถิ่น my_var =”ค่า”

พารามิเตอร์ตำแหน่ง

ฟังก์ชั่นอ่านข้อโต้แย้งโดยใช้สิ่งเดียวกัน $1, $2, และ $@ ตัวแปรเป็นสคริปต์ สิ่งเหล่านี้อยู่ในฟังก์ชันและรีเซ็ตเมื่อฟังก์ชันออกจากการทำงาน อาร์กิวเมนต์ดั้งเดิมของสคริปต์ไม่สามารถเข้าถึงได้ภายในฟังก์ชัน เว้นแต่คุณจะส่งต่ออย่างชัดเจน

ส่งกลับค่า

ฟังก์ชัน Bash จะไม่ส่งคืนข้อมูลเช่นฟังก์ชัน Python หรือ JavaScript ที่ กลับ คำสั่งจะตั้งค่าสถานะการออก (0-255) เพื่อระบุความสำเร็จหรือความล้มเหลวเท่านั้น หากต้องการส่งคืนข้อมูลจริง (เช่น สตริงหรือการคำนวณ) เสียงสะท้อน ผลลัพธ์และจับภาพเมื่อเรียกใช้ฟังก์ชัน:

ผลลัพธ์=$(my_function)

ตัวอย่างฟังก์ชัน Bash ที่มีประโยชน์ 10 อันดับแรก

เมื่อคุณเข้าใจฟังก์ชัน Bash และวิธีสร้างฟังก์ชันแล้ว ต่อไปนี้คือตัวอย่างการใช้งานจริง 10 ตัวอย่างที่คุณสามารถเพิ่มลงในสคริปต์ของคุณได้ แต่ละฟังก์ชันแก้ปัญหาทั่วไปและสาธิตโครงสร้าง อาร์กิวเมนต์ และค่าที่ส่งคืนที่เหมาะสม

1. ฟังก์ชั่นการสำรองไฟล์

สร้างการสำรองข้อมูลที่มีการประทับเวลาของไฟล์ใด ๆ :

สำรอง_ไฟล์ () {

    ไฟล์ในเครื่อง =”$1″

    การสำรองข้อมูลในเครื่อง =”${file}.$(วันที่ +%Y%m%d_%H%M%S).bak”

    

    ถ้า [ -f “$ไฟล์” ]; แล้ว

        cp “$ไฟล์” “$สำรอง”

        echo “สร้างข้อมูลสำรองแล้ว: $backup”

        กลับ 0

    อื่น

        echo “ข้อผิดพลาด: ไม่พบไฟล์”

        กลับ 1

    fi

}

 

การใช้งาน: backup_file /etc/nginx/nginx.conf

2. ตัวตรวจสอบไดเรกทอรี

ตรวจสอบว่ามีไดเร็กทอรีอยู่หรือไม่และสร้างใหม่หากจำเป็น:

ให้แน่ใจว่า_dir () {

    dir ท้องถิ่น =”$1″

    

    ถ้า [ ! -d “$dir” ]; แล้ว

        mkdir -p “$dir”

        echo “สร้างแล้ว: $dir”

    fi

}

 

การใช้งาน: ให้แน่ใจว่า_dir /var/log/myapp

3. คนบันทึกการประทับเวลา

เพิ่มการประทับเวลาเพื่อบันทึกข้อความสำหรับการดีบัก:

log_message () {

    ระดับท้องถิ่น=”$1″

    ข้อความท้องถิ่น =”$2″

    echo "[$(วันที่ '+%Y-%m-%d %H:%M:%S')] [$ระดับ] $ข้อความ"

}

 

การใช้งาน: log_message “ข้อมูล” “สคริปต์เริ่มต้น”

4. การตรวจสอบพื้นที่ดิสก์

ตรวจสอบการใช้งานดิสก์และเตือนหากเกินขีดจำกัด:

check_disk_space () {

    เกณฑ์ท้องถิ่น =”${1:-80}”

    การใช้งานท้องถิ่น=$(df / | tail -1 | awk '{พิมพ์ $5}' | tr -d '%')

    

    ถ้า [ “$usage” -gt “$threshold” ]; แล้ว

        echo “คำเตือน: การใช้งานดิสก์ที่ ${usage}%”

        กลับ 1

    fi

    กลับ 0

}

 

การใช้งาน: check_disk_space 90

5. เครื่องมือตรวจสอบอินพุต

ตรวจสอบว่าอินพุตของผู้ใช้ไม่ว่างเปล่า:

validate_input () {

    อินพุตท้องถิ่น =”$1″

    ชื่อท้องถิ่น=”$2″

    

    ถ้า [ -z “$input” ]; แล้ว

        echo “ข้อผิดพลาด: $name ไม่สามารถเว้นว่างได้”

        กลับ 1

    fi

    กลับ 0

}

 

การใช้งาน: validate_input “$ชื่อผู้ใช้” “ชื่อผู้ใช้”

6. ตัวตรวจสอบสถานะการบริการ

ตรวจสอบว่าบริการกำลังทำงานอยู่หรือไม่และรายงานสถานะ:

ตรวจสอบ_บริการ () {

    บริการท้องถิ่น=”$1″

    

    ถ้า systemctl ใช้งานอยู่ – เงียบ “$service”; แล้ว

        เสียงสะท้อน “$ บริการกำลังทำงานอยู่”

        กลับ 0

    อื่น

        เสียงสะท้อน “$service ไม่ทำงาน”

        กลับ 1

    fi

}

 

การใช้งาน: check_service nginx.php?

7. ตัวแยกนามสกุลไฟล์

แยกนามสกุลออกจากชื่อไฟล์:

get_extension () {

    ชื่อไฟล์ในเครื่อง =”$1″

    เสียงสะท้อน “${ชื่อไฟล์##*.}”

}

 

การใช้งาน: ต่อ=$(get_extension “document.pdf”)

8. ที่กันจอนสาย

ลบช่องว่างนำหน้าและต่อท้ายจากสตริง:

trim_string () {

    str ท้องถิ่น =”$1″

    str=”${str#”${str%%[![:space:]]*}”}”

    str=”${str%”${str##*[![:space:]]}”}”

    สะท้อน “$str”

}

 

การใช้งาน: clean=$(trim_string ” สวัสดีชาวโลก “)

9. โปรแกรมเก็บไฟล์ที่ปลอดภัย

ย้ายไฟล์ไปยังไดเร็กทอรี $HOME/.trash ที่กำหนดเองแทนที่จะลบออกอย่างถาวร โดยจะเพิ่มการประทับเวลาต่อท้ายชื่อไฟล์เพื่อป้องกันการเขียนทับข้อมูลสำรองก่อนหน้า

safe_remove() {

    ไฟล์ในเครื่อง =”$1″

    ถังขยะในเครื่อง =”$HOME/.trash”

    # ผนวกการประทับเวลาเพื่อหลีกเลี่ยงการเขียนทับไฟล์ที่มีอยู่

    new_name ท้องถิ่น =”$(ชื่อฐาน “$file”)_$(วันที่ +%s)”

    

    mkdir -p “$ถังขยะ”

 

    ถ้า [ -e “$file” ]; แล้ว

        mv “$file” “$ถังขยะ/$new_name”

        echo “ย้ายไปยังไฟล์เก็บถาวรแล้ว: $file -> $trash/$new_name”

    อื่น

        echo “ข้อผิดพลาด: ไม่พบไฟล์ $”

        กลับ 1

    fi

}

 

การใช้งาน: safe_remove old_script.sh

 

10. ผู้รายงานสถานะ

สาธิตกลไกการส่งคืนฟังก์ชัน Bash สำหรับการจัดการข้อผิดพลาด ค่าที่ส่งคืนของฟังก์ชัน Bash บ่งชี้ว่าสำเร็จ (0) หรือล้มเหลว (ไม่เป็นศูนย์):

กระบวนการ_ข้อมูล () {

    ไฟล์ในเครื่อง =”$1″

    

    ถ้า [ ! -f “$ไฟล์” ]; แล้ว

        กลับ 1

    fi

    

    #ดำเนินการไฟล์

    แมว “$ ไฟล์” | สุขา -l

    กลับ 0

}

 

#ตรวจสอบค่าส่งคืน

กระบวนการ_ข้อมูล “data.txt”

ถ้า [ $? -eq 0 ]; แล้ว

    สะท้อน “การประมวลผลเสร็จสมบูรณ์”

อื่น

    สะท้อน “การประมวลผลล้มเหลว”

fi

 

ที่ $? ตัวแปรจับสถานะทางออกจากคำสั่งหรือการเรียกใช้ฟังก์ชันล่าสุด

การทำงาน วัตถุประสงค์ คุณสมบัติที่สำคัญ
backup_file สร้างการสำรองไฟล์ การตั้งชื่อแบบประทับเวลา
มั่นใจ_dir การจัดการไดเรกทอรี สร้างหากขาดหายไป
log_message การบันทึก คำนำหน้าการประทับเวลา
check_disk_space การตรวจสอบระบบ การแจ้งเตือนเกณฑ์
validate_input การตรวจสอบอินพุต ตรวจสอบสตริงว่าง
ตรวจสอบ_บริการ การตรวจสอบการบริการ บูรณาการระบบ
get_extension การแยกวิเคราะห์สตริง การขยายพารามิเตอร์
trim_string การล้างข้อมูลสตริง การลบช่องว่าง
ปลอดภัย_ลบ การลบอย่างปลอดภัย ไดเร็กทอรีถังขยะ
กระบวนการ_ข้อมูล การจัดการข้อผิดพลาด ส่งกลับค่า

การเรียกใช้ฟังก์ชัน Bash บน VPS

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

ด้วย VPS คุณสามารถจัดเก็บฟังก์ชันที่นำมาใช้ซ้ำได้ /etc/profile.d/ สำหรับผู้ใช้ทั้งหมด กำหนดเวลาสคริปต์ตามฟังก์ชันผ่านงาน cron และสร้างไปป์ไลน์อัตโนมัติสำหรับการปรับใช้และการบำรุงรักษา เรานำเสนอเซิร์ฟเวอร์ใน 12 แห่งทั่วโลกด้วยความเร็วเครือข่ายสูงสุด 40 Gbps และหน่วยความจำ DDR5 ซึ่งหมายถึงการเรียกใช้สคริปต์ที่เร็วขึ้นและการประมวลผลข้อมูลที่ราบรื่นยิ่งขึ้น

การควบคุมระดับนี้ทำให้ VPS เหมาะสำหรับทุกคนที่จริงจังกับเชลล์สคริปต์และระบบอัตโนมัติ

บทสรุป

ฟังก์ชั่น Bash เป็นกุญแจสำคัญในการสร้างสคริปต์แบบโมดูลาร์และนำมาใช้ซ้ำได้ ช่วยให้คุณสามารถจัดกลุ่มคำสั่งที่เกี่ยวข้องเข้าด้วยกันและสรุปตรรกะที่ซับซ้อนเพื่อทำให้โค้ดของคุณอ่านและบำรุงรักษาได้ง่ายขึ้น หากคุณกำลังจัดการโครงสร้างพื้นฐานคลาวด์ ทำให้ไปป์ไลน์การปรับใช้อัตโนมัติ หรือจัดการงานการดูแลระบบตามปกติ ฟังก์ชันต่างๆ จะช่วยให้สคริปต์ของคุณเป็นระเบียบและมีประสิทธิภาพ

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

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

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

ฟังก์ชั่น Bash สามารถมีตัวแปรในเครื่องได้หรือไม่?

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

ฟังก์ชั่น Bash สามารถเรียกซ้ำได้หรือไม่?

ใช่ ฟังก์ชัน Bash สามารถเรียกซ้ำได้ Bash มีขนาดสแต็กการโทรเริ่มต้นที่ค่อนข้างเล็ก ดังนั้นคุณอาจต้องเพิ่มมันโดยใช้คำสั่ง ulimit -s ก่อนดำเนินการ ทั้งนี้ขึ้นอยู่กับฟังก์ชันแบบเรียกซ้ำที่คุณมีอยู่

ฉันสามารถใช้ฟังก์ชัน Bash ในสคริปต์อื่นได้หรือไม่

ใช่ คุณสามารถแชร์ฟังก์ชัน Bash ระหว่างสคริปต์ได้โดยใช้คำสั่ง source (หรือชวเลข .) โดยการจัดหาไฟล์ที่มีคำจำกัดความฟังก์ชัน คุณจะทำให้ฟังก์ชันเหล่านั้นพร้อมใช้งานในสคริปต์การโทร สำหรับกระบวนการลูก ให้ใช้export -f function_nameเพื่อทำให้ฟังก์ชันสามารถเข้าถึงได้

ฉันสามารถใช้ฟังก์ชัน Bash ในไปป์ไลน์ได้หรือไม่

ได้ แต่ต้องมีขั้นตอนเฉพาะสำหรับคำสั่งภายนอก ภายในสคริปต์ คุณสามารถไพพ์ข้อมูลไปยังฟังก์ชันได้โดยตรง (เช่น cat file | my_function) อย่างไรก็ตาม คำสั่งเช่น xargs หรือ find -exec ทำงานในสภาพแวดล้อมใหม่ หากต้องการใช้ฟังก์ชันที่นั่น คุณต้องส่งออกฟังก์ชันดังกล่าว (ส่งออก -f my_func) จากนั้นเรียกใช้ Bash อย่างชัดเจน (เช่น xargs bash -c 'my_func “$@”‘)

ฟังก์ชั่นเชลล์สคริปต์คืออะไร?

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

แบ่งปัน

เพิ่มเติมจากบล็อก

อ่านต่อ

แอพที่โฮสต์เองที่ดีที่สุดที่คุณสามารถเรียกใช้ด้วย Cosmos Cloud ภาพหน้าปกพร้อมแผงแอพรอบแดชบอร์ดของ Cosmos
เซิร์ฟเวอร์และระบบปฏิบัติการ

แอพที่โฮสต์เองที่ดีที่สุดที่คุณสามารถรันด้วย Cosmos Cloud: ไฟล์ สื่อ รหัสผ่าน ระบบอัตโนมัติ และอื่นๆ อีกมากมาย!

บางทีคุณอาจตั้งค่า Cosmos Cloud ไว้แล้วและตอนนี้ต้องการดูว่าแอปใดที่เข้ากันได้ดีกับมัน หรือบางทีคุณอาจยังไม่ได้ตัดสินใจเลือก Cosmos และแค่อยากจะดูว่ามันเหมาะกับงานของคุณแค่ไหน

นิค ซิลเวอร์นิค ซิลเวอร์ อ่าน 16 นาที
Portainer vs Cosmos Cloud สำหรับการจัดการแอพ Docker ครอบคลุมด้วยไดอะแกรมการตั้งค่าไฮบริดและตัวเลือกนีออนเทียบกับบล็อกการเข้าถึง
เซิร์ฟเวอร์และระบบปฏิบัติการ

Portainer vs Cosmos Cloud: เหมาะที่สุดสำหรับการจัดการแอพ Docker

หากคุณรู้จัก Docker อยู่แล้ว และเพียงต้องการวิธีที่สะอาดกว่าในการรันแอปสแต็กที่กำลังเติบโต ต่อไปนี้เป็นคำตอบสั้นๆ สำหรับ Portainer กับ Cosmos Cloud Portainer เป็นตัวเลือกที่ดีกว่าสำหรับไดเร็ค

นิค ซิลเวอร์นิค ซิลเวอร์ อ่าน 14 นาที
กราฟิกฟีเจอร์ Cosmos Cloud vs CasaOS vs Umbrel แสดงเส้นทางที่โฮสต์ด้วยตนเองสามเส้นทางภายในโลกเครือข่ายคลาวด์แบบนามธรรมแห่งเดียว
เซิร์ฟเวอร์และระบบปฏิบัติการ

Cosmos Cloud กับ CasaOS กับ Umbrel: แพลตฟอร์มที่โฮสต์เองใดที่เหมาะกับการตั้งค่าของคุณ?

คำตอบสั้นๆ ก็คือ CasaOS ยังคงเป็นจุดเริ่มต้นที่ง่ายที่สุด Umbrel ให้ความรู้สึกที่สะอาดตาที่สุด และ Cosmos Cloud ก็สมเหตุสมผลมากขึ้นเมื่อคุณต้องการควบคุม Doma ที่เข้มงวดยิ่งขึ้น

นิค ซิลเวอร์นิค ซิลเวอร์ อ่าน 11 นาที

พร้อมที่จะใช้งานหรือยัง? จาก $2.48/เดือน

คลาวด์อิสระ ตั้งแต่ปี 2008 AMD EPYC, NVMe, 40 Gbps คืนเงินภายใน 14 วัน