Trong bài viết này, chúng ta sẽ thảo luận chi tiết về các hàm trong shell. Hàm cho phép bạn phân chia chức năng tổng thể của một script thành các phần nhỏ, có logic riêng biệt, sau đó có thể được gọi để thực hiện các nhiệm vụ cụ thể của chúng khi cần.
Các hàm shell tương tự như các chương trình con, thủ tục và hàm trong các ngôn ngữ lập trình khác.
Xem thêm:
- vòng lặp trong shell script và cấu trúc rẽ nhánh if, select
- một số toán tử trong shell script
- viết chương trình Hello World Shell Script
1. Định nghĩa một hàm trong ShellScript
tên_hàm() { # Các câu lệnh bên trong hàm # ... }
Ví dụ:
#!/bin/bash # Định nghĩa hàm hello hello() { echo "Hello World" } # Gọi hàm hello hello
2. Truyền tham số cho hàm
Ví dụ: Tính tổng 2 số
- Hàm tinh_tong nhận hai tham số (số thứ nhất và số thứ hai) từ lời gọi hàm.
- Sử dụng biến tong để tính tổng của hai số.
- Cuối cùng, in ra kết quả tổng.
#!/bin/bash # Định nghĩa hàm tính tổng tinh_tong() { # Nhận tham số từ lời gọi hàm và lưu vào biến so1=$1 so2=$2 # Tính tổng tong=$((so1 + so2)) # In ra kết quả echo "Tổng của $so1 và $so2 là: $tong" } # Gọi hàm và truyền tham số tinh_tong 5 3
Liên quan:
- tính tổng của n số hạng đầu tiên của dãy Fibonacci bằng ngôn ngữ lập trình Shell
- thuật toán tìm ước chung lớn nhất shell script
- ố nguyên tố đối xứng
3. Trả về giá trị từ hàm
Cú pháp:
ten_ham() { # Các câu lệnh bên trong hàm # ... # Trả về giá trị return gia_tri }
Ví dụ:
- Hàm tinh_tong tính tổng của hai số và sử dụng return để trả về giá trị tổng.
- Biến bien_tong lưu giá trị trả về từ hàm bằng cách sử dụng $?.
- Sau đó, giá trị tổng được in ra màn hình.
#!/bin/bash # Hàm tính tổng của hai số và trả về giá trị tinh_tong() { local so1=$1 local so2=$2 local tong=$((so1 + so2)) # Trả về giá trị tổng return $tong } # Gọi hàm và lưu giá trị trả về vào bien_tong tinh_tong 5 3 bien_tong=$? # In ra giá trị tổng echo "Tổng của 5 và 3 là: $bien_tong"
4. Hàm lồng nhau
Ví dụ cách sử dụng hàm lồng nhau trong shell script để tính giai thừa của một số và in thông tin về nó:
#!/bin/bash # Hàm tính giai thừa của một số tinh_giai_thua() { local n=$1 local giai_thua=1 # Sử dụng vòng lặp để tính giai thừa for ((i=1; i<=n; i++)) do giai_thua=$((giai_thua * i)) done # Trả về giá trị giai thừa echo $giai_thua } # Hàm in thông tin về số và giai thừa của nó in_thong_tin_giai_thua() { local so=$1 # Gọi hàm tinh_giai_thua để lấy giá trị giai thừa local ket_qua_giai_thua=$(tinh_giai_thua $so) # In ra thông tin echo "Số: $so" echo "Giai thừa: $ket_qua_giai_thua" } # Gọi hàm in_thong_tin_giai_thua với số 5 in_thong_tin_giai_thua 5
Trên đây là cách viết và gọi chương trình con trong bash shell. Cảm ơn bạn đã tham khảo quản trị linux trên ttnguyen.net.
Bài viết liên quan:
- cách khai báo biến trong Shell Script
- quản trị người dùng và nhóm trong Linux Ubuntu
- các lệnh quản lý file trên linux ubuntu