1
4
7.2.2.5
Các hàm shell
Các hàm chức năng của bash là một cách mở rộng các tiện ích sẵn có trong shell, nó có các
điểm lợi sau:
•
Thi hành nhanh hơn do các hàm shell luôn thường trực trong bộ nhớ.
•
Cho phép việc lập trình trở nên dễ dàng hơn vì ta có thể tổ chức chương trình thành
các module.
Ta có thể định nghĩa các hàm shell sử dụng theo hai cách:
function
fname
{
commands
}
hoặc là
fname()
{
commands
}(
Cả hai dạng đều được chập nhận và không có gì khác giữa chúng. Để gọi một hàm đã
định nghĩa đơn giản là gọi tên hàm cùng với các đối số mà nó cần.
Nếu so sánh với C hay Pascal, hàm của bash không được chặt chẽ, nó không kiểm tra
lỗi và không có phương thức trả về đối số bằng giá trị. Tuy nhiên giống như C và Pascal,
các biến địa phương có thể khai báo cục bộ đối với hàm, do đó tránh được sự xung đột với
biến toàn cục. Để thực hiện điều này ta dùng từ khoá local như trong đoạn mã sau:
function
foo
{
local myvar
local yourvar=1
}
Trong ví dụ về các biến vị trí ở trên ta cũng thấy được cách sử dụng hàm trong bash.
Các hàm shell giúp mã của ta dễ hiểu và dễ bảo dưỡng. Sử dụng các hàm và các chú thích
ta sẽ đỡ rất nhiều công sức khi ta phải trở lại nâng cấp đoạn mã mà ta đã viết từ thời gian
rất lâu trước đó.
7.2.3 Các toán tử định hướng vào ra
Ta đã được biết về các toán tử định hướng vào ra, > và <. Toán tử định hướng ra cho
phép ta gửi kết quả ra của một lệnh vào một file. Ví dụ như lệnh sau:
$ cat $HOME/.bash_profile > out
Nó sẽ tạo một file tên là out trong thư mục hiện tại chứa các nội dung của file
bash_profile, bằng cách định hướng đầu ra của cat tới file đó.
Tương tự, ta có thể cung cấp đầu vào là một lênh từ một file hoặc là lệnh sử dụng toán
tử đầu vào, <. Tacó thể viết lại lệnh cat để sử dụng toán tử định hướng đầu vào như sau:
$ cat < $HOME/.bash_profile > out