6. Lập trình shell.
6.2. Sử dụng các biến
Cũng giống như với hầu hết các ngôn ngữ lập trình, việc sử dụng các biến là rất quan trọng trong các chương trình shell. Tất nhiên, bạn đã được nhìn thấy một vài kiểu biến trước đó. Một vài ví dụ nói chung về biến được sử dụng là biến PATH và biến TERM. Các biến này là các ví dụ về các biến shell sẵn có, là các biến được định nghĩa bởi chương trình shell mà bạn đang sử dụng. Phần này miêu tả cách làm thế nào để bạn tạo các biến của chính bạn và sử chúng trong một vài chương trình shell.
6.2.1. Gán m t giá tr cho m t bi n
Trong cả ba shell được cung cấp bởi Linux ( shell Bourne, Korn, và C ), bạn có thể gán một giá trị cho một biến bằng cách gõ tên biến theo su bởi dấu bằng và sau đó gõ giá trị mà bạn muốn gán cho biến. Ví dụ, để gán một giá trị 5 cho một biến có tên là count, vào câu lệnh sau trong bash hoặc pdksh:
count=5
Với tcsh, vào câu lệnh sau để đạt được kết quả tương tự: set count = 5
Khi thiết lập một biến cho shell bash và pdksh, hãy chắc chắn rằng không có dấu cách ở cả hai bên dấu bằng. Với tcsh, điều này không quan trọng.
Bởi vì ngôn ngữ shell là một ngôn ngữ kịch bản phi kiểu, bạn không phải khai báo biến như bạn có thể đã từng làm điều này trong lập trình C hay Pascal. Bạn có thể sử dụng cùng một biến để lưu trữ xâu ký tự hay số nguyên. Bạn lưu một chuỗi ký tự vào trong một biến cũng giống như việc bạn lưu một số nguyên vào một biến, như có thể thấy trong ví dụ dưới đây:
name=Garry (for pdksh and bash)
set name = Garry (for tcsh)
Sau khi bạn lưu một giá trị vào một biến, bạn làm thế nào để có thể lấy giá trị đó trở lại? Bạn đặt trước tên biến với dấu đô la ($). Để in giá trị được lưu trữ trong biến count ra màn hình, vào câu lệnh sau:
echo $count
Nếu bạn quên dấu $ trước câu lệnh, lệnh echo sẽ hiển thị từ “count” trên màn hình. 6.2.2. Tham s và các bi n Shell có s n
Khi bạn chạy chương trình shell yêu cầu hay hỗ trợ một số các tùy chọn dòng lệnh, mỗi tùy chọn này được lưu trữ trong một đối số. Đối số đầu tiên được lưu trữ trong một biến có tên là 1, đối số thứ hai được lưu trữ trong biến có tên là 2, và tiếp tục như thế. Shell đặt tên các biến này, vì vậy bạn không thể đặt tên như thế cho các biến mà bạn định nghĩa. Để lấy giá trị từ các biến này, bạn phải đặt trước tên biến với một dấu $ như bạn làm đối các biến mà bạn định nghĩa.
Chương trình shell reverse dưới đây chờ nhận hai đối số. Chương trình lấy hai đối số dòng lệnh và in ra đối số thứ hai ở dòng đầu tiên và đối số đầu tiên ở dòng thứ hai: echo "$2"
echo "$1"
Nếu bạn gọi tới chưong trình bằng cách gõ dòng lệnh sau reverse hello there
Chương trình sẽ trả lại kết quả there hello
Một số các biến shell quan trọng được xây dựng sẵn mà bạn cần biết khi làm việc nhiều với lập trình shell. Bảng 6.2.1 đưa ra danh sách các biến này và mô tả tóm tắt mỗi biến được sử dụng để làm gì.
Bảng 6.2.1 Các biến shell có sẵn.
Biến Sử dụng
$# Lưu số các đối số dòng lệnh được đưa vào chương trình shell $? Lưu giá trị tồn tại của câu lệnh được thực thi sau cùng
$0 Lưu từ đầu tiên của câu lệnh được đưa vào, đó là tên của chương trình shell $* Lưu tất cả các đối số được đưa vào từ dòng lệnh ("$1 $2 ...")
"$@" Lưu tất cả các đối số được đưa vào từ dòng lệnh, có dấu nháy kép riêng ("$1" "$2" ...)