Sử dụng các hàm

Một phần của tài liệu Quản trị hệ điều hành linux (Trang 92 - 94)

6. Lập trình shell.

6.7.Sử dụng các hàm

Ngôn ngữ shell cho phép bạn dịnh nghĩa hàm của chính bạn. Các hàm này được định nghĩa giống như cách bạn định nghĩa các hàm trên ngôn ngữ lập trình C hay các ngôn ngữ lập trình khác. Thuận lợi chính của việc sử dụng hàm để tổ chức, tránh viết tất cả các mã shell của bạn trong một dòng. Mã được viết sử dụng các hàm có khuynh hướng dễ hơn trong việc đọc và bảo trì và cũng là khuynh hướng nhỏ gọn hơn bởi vì bạn có thể nhóm các mã chung vào trong một hàm thay việc đưa nó vào tất cả các nơi cần nó.

Cú pháp để tạo một hàm trongbash và pdksh là như sau: fname () {

shell commands

}

Cùng với cú pháp trước , pdksh cho phép cú pháp sau: function fname {

shell commands

}

Cả hai dạng này đều được xử lý chính xác như nhau theo cùng một cách.

Sau khi bạn đã định nghĩa hàm của bạn sử dụng một trong các dạng trên, bạn có thể gọi đến nó bằng cách vào lệnh sau:

fname [parm1 parm2 parm3 ...]

Chú ý rằng bạn có thể đưa số lượng bất kỳ các đối số vào trong hàm của bạn. Khi bạn đưa các đối số vào trong một hàm, nó xem các đối số này như đối số của một chương trình shell khi bạn đưa các đối số này từ dòng lệnh. Ví dụ, chương trình shell sau chứa vài hàm, mỗi hàm thực hiện một nhiệm vụ mà được kết hợp với các tùy chọn dòng lệnh. Ví dụ này bao trùm nhiều nội dung trong phần này. Nó đọc tất cả các file được đưa vào từ dòng lệnh và phụ thuộc vào tùy chọn được sử dụng, viết ra file với tất cả các ký tự hoa, viết ra file với tất cả các ký tự thường, hoặc in các file.

upper () {

shift

for i

tr a-z A-Z <$1 >$1.out rm $1 mv $1.out $1 shift done; } lower () { shift for i do

tr A-Z a-z <$1 >$1.out

rm $1 mv $1.out $1 shift done; } print () { shift for i do lpr $1 shift done; } usage_error () {

echo "$1 syntax is $1 <option> <input files>"

echo ""

echo "where option is one of the following"

echo "p -- to print frame files"

echo "u -- to save as uppercase"

echo "l -- to save as lowercase"; }

case $1

p | -p) print $@;; u | -u) upper $@;; u | -u) upper $@;; l | -l) lower $@;; *) usage_error $0;; esac Chương trình tcsh không hỗ trợ các hàm. 6.8. Tng kết

Trong chương này, bạn đã thấy được nhiều đặc điểm của các ngôn ngữ lập trình bash, pdksh và tcsh. Khi bạn sử dụng Linux, bạn sẽ thấy rằng bạn sử dụng các ngôn ngữ lập trình shell càng ngày càng thường xuyên. Cho dù ngôn ngữ shell rất mạnh và dễ học, bạn có thể gặp phải một vài vấn đề khi chương trình shell không phù hợp với vấn đề bạn giải quyết. Trong những trường hợp như vậy, bạn có thể nghiên cứu tìm hiểu các ngôn ngữ khác có thể sử dụng có trong Linux.

Một phần của tài liệu Quản trị hệ điều hành linux (Trang 92 - 94)