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