บทความนี้จะอธิบายวิธีใช้ ฟังก์ชัน ในสคริปต์ทุบตี – ช่วยให้คุณนำโค้ดกลับมาใช้ใหม่และทำให้สคริปต์ของคุณง่ายขึ้น
ทำไมต้องเขียนโค้ดหลายครั้ง ในเมื่อเขียนได้ครั้งเดียวแล้วใช้ซ้ำได้
นั่นคือสิ่งที่ทำหน้าที่ ให้คุณทำ
บทความนี้สรุปการใช้ฟังก์ชันในสคริปต์ Bash/Shell
ฟังก์ชันคืออะไร
A ฟังก์ชัน เป็นโค้ดที่ใช้ซ้ำได้ ฟังก์ชันสามารถรับพารามิเตอร์ได้ ซึ่งทำให้ฟังก์ชันดังกล่าวสามารถดำเนินการซ้ำกับอินพุตที่ต่างกันได้
ฟังก์ชันมักจะดำเนินการใดๆ เอาต์พุตหรือผลการพิมพ์ หรือคืนค่าสำหรับใช้ในอนาคต
เหตุใดจึงต้องใช้ฟังก์ชัน
ตัวอย่างเช่น คุณอาจมีสคริปต์ที่ส่งการแจ้งเตือนทางอีเมลว่ามีบางอย่างเกิดขึ้น หากคุณต้องการส่งอีเมลหลายฉบับไปยังผู้รับหลายราย คุณอาจเขียนรหัสการส่งอีเมลเดียวกันหลายครั้งในสคริปต์เพื่อส่งข้อความ
เมื่อใช้ฟังก์ชัน คุณจะสามารถเขียนโค้ดนี้ได้เพียงครั้งเดียว จากนั้นเรียกใช้โค้ดกับผู้รับ หัวเรื่อง และข้อความต่างๆ ด้วยการเรียกใช้ฟังก์ชันบรรทัดเดียวแทนที่จะเป็นโค้ดที่ซ้ำกัน
ไวยากรณ์ฟังก์ชันทุบตี
ไวยากรณ์สำหรับการเขียนฟังก์ชันในสคริปต์ Bash/Shell มีดังนี้:
name_of_function () { # COMMANDS # Optional return value }
โปรดทราบว่า:
- name_of_function เป็นชื่อที่คุณต้องการเรียกใช้ฟังก์ชันของคุณโดยใช้
- เฉพาะตัวอักษรและตัวเลขและขีดล่างเท่านั้น!
- ชื่อฟังก์ชันต้องตามด้วย () (วงเล็บมาตรฐาน)
- สังเกตช่องว่างรอบวงเล็บ! จำเป็น!
- โค้ดที่คุณต้องการให้ฟังก์ชันรันต้องอยู่ใน {} (วงเล็บปีกกา)
- โค้ดใดๆ นอกวงเล็บปีกกาเหล่านี้ไม่ได้เป็นส่วนหนึ่งของฟังก์ชันและจะไม่ถูกดำเนินการ
- คำสั่ง สามารถเป็นคำสั่งใด ๆ ที่มักจะมีอยู่ในระบบ Linux ของคุณ
- คุณสามารถเลือก คืน ค่า – ดูตัวอย่างการใช้งานด้านล่าง
- หากต้องการยุติฟังก์ชันก่อนกำหนด คุณยังสามารถโทร return ไม่มีค่าให้ออกจากฟังก์ชัน
- ความพิเศษ $? ตัวแปรจะเก็บค่าที่ส่งคืนจากคำสั่งที่ดำเนินการล่าสุด ทำให้สามารถใช้ได้ที่อื่นในสคริปต์ของคุณหลังจากที่เรียกใช้ฟังก์ชันแล้ว
ตัวอย่างและคำอธิบาย
ต่อไปนี้คือตัวอย่างที่แสดงองค์ประกอบฟังก์ชัน Bash ต่างๆ ทั้งหมด โดยมีความคิดเห็นอธิบายสิ่งที่กำลังทำอยู่
#!/bin/bash # Define a global variable - available anywhere in the script as it is not defined inside a function or loop initial_value=3 # Define a function which does some mathematics my_math_function () { # Get the parameters passed to the function # Parameters are passed after the function name when calling the function, and will be named in order of appearance, starting with $1, then $2, etc # Below, these parameter values are assigned to local variables - available only inside the function - so that it's easier to tell what they are local multiplier_value=$1 local addition_value=$2 # Calculate the result and assign it to a local variable # Notice the $(( )) wrapping the calculations - this tells the script to assign the result of these calculations to the results variable, rather than assigning the calculations as a text value local result=$(( $initial_value * $multiplier_value + $addition_value )) # Print the result to the console # Depending on how the function is used, text output from the function can be used to read results from it echo $result # It is also possible to get output from the function using a return value return $result } # Call the function with different input parameters # Parameters are passed to the function by typing them after the function separated by a space # The function above expects two parameters - a multiplier_value and addition_value my_math_function 2 4 # Will output 10 (2 * 3 + 4) my_math_function 3 5 # Will output 14 (3 * 3 + 5) # The $? is a special variable in Bash scripts which always holds the return value from the last executed command # It can be used to get the value specified as the return value from the function. echo $? # Will output 14 # Assign the result of the function to a variable # This will assign any text outputted by the function (for example using the echo command) to a variable my_result=$(my_math_function 6 7) echo $my_result # Will output 25 (6 * 3 + 7)
'#!' ใน Linux Shell Scripts คืออะไร
ต้องการส่งค่าไปยังเชลล์สคริปต์ของคุณ (เพื่อให้คุณสามารถส่งต่อไปยังฟังก์ชันในนั้น) ได้หรือไม่ ตรวจสอบบทความนี้