GIÁO TRÌNH HỆ ĐIỀU HÀNH UNIX - LINUX - Trang 143

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