<ก่อนหน้านี้ | Contents | ถัดไป>
การใช้พารามิเตอร์ตำแหน่งกับฟังก์ชันเชลล์
เช่นเดียวกับที่ใช้พารามิเตอร์ตำแหน่งเพื่อส่งผ่านอาร์กิวเมนต์ไปยังเชลล์สคริปต์ พารามิเตอร์เหล่านี้ยังสามารถใช้เพื่อส่งผ่านอาร์กิวเมนต์ไปยังฟังก์ชันของเชลล์ เพื่อแสดงให้เห็น เราจะแปลง ไฟล์_ข้อมูล สคริปต์ในฟังก์ชันเชลล์:
file_info () {
# file_info: ฟังก์ชั่นแสดงข้อมูลไฟล์หาก [[ -e $1 ]]; แล้ว
echo -e "\nประเภทไฟล์:" ไฟล์ $1
echo -e "\nสถานะไฟล์:" stat $1
อื่น
echo "$FUNCNAME: การใช้งาน: $FUNCNAME file" >&2 return 1
file_info () {
# file_info: ฟังก์ชั่นแสดงข้อมูลไฟล์หาก [[ -e $1 ]]; แล้ว
echo -e "\nประเภทไฟล์:" ไฟล์ $1
echo -e "\nสถานะไฟล์:" stat $1
อื่น
echo "$FUNCNAME: การใช้งาน: $FUNCNAME file" >&2 return 1
fi
}
fi
}
ตอนนี้ถ้าสคริปต์ที่รวม ไฟล์_ข้อมูล ฟังก์ชันเชลล์เรียกใช้ฟังก์ชันด้วยอาร์กิวเมนต์ชื่อไฟล์ อาร์กิวเมนต์จะถูกส่งไปยังฟังก์ชัน
ด้วยความสามารถนี้ เราสามารถเขียนฟังก์ชันเชลล์ที่มีประโยชน์มากมาย ที่ไม่เพียงแต่สามารถใช้ได้ในสคริปต์เท่านั้น แต่ยังรวมถึงภายในของเราด้วย .bashrc ไฟล์
ขอให้สังเกตว่า ชื่อโปรแกรม ตัวแปรถูกเปลี่ยนเป็นตัวแปรเชลล์ FUNCNAME. เชลล์อัพเดตตัวแปรนี้โดยอัตโนมัติเพื่อติดตามการทำงานของเชลล์ที่ดำเนินการอยู่ในปัจจุบัน สังเกตว่า $0 มีชื่อพาธแบบเต็มของรายการแรกบนบรรทัดคำสั่งเสมอ (เช่น ชื่อของโปรแกรม) และไม่มีชื่อของเชลล์ฟังก์ชันอย่างที่เราคาดไว้