File script
Script shell là một danh sách các chỉ dẫn được lưu trữ trong một tệp phẳng (flat file). Chỉ có hai chỉ dẫn sau là cần thiết.
1. Dòng đầu tiên của script phải là #!/bin/bash (đối với script bash) 2. File phải có có thểđọc và chạy được (ví dụđối với quyền 755)
Nếu các dòng này không hiện hữu thì cũng có thể chạy chương trình script bằng cácg gõ:
bash program-name
Các biến được tạo tại các dòng lệnh được tham chiếu bên trong script như $1 đối với đối sốđầu tiên, $2 cho đối số thứ hai, vv …
Ví dụ script, mycat:
#!/bin/bash cat $1
Script này đòi hỏi một đối số là một file và sẽ hiển thị nội dung của file bằng cách sử dụng cat. Để chạy script này trong file lilo.conf, bạn sẽ chạy:
./mycat /etc/lilo.conf
Một cách khác để chuyển các biến vào script là đặt dấu nhắc script để cho người dùng nhập đầu vào. Cách này có thể thực hiện bằng cách sử dụng câu lệnh read. Tên mặc định của biến được đọc là REPLY. Sau đây là một script đã được thay
đổi:
Chuyển biến tương tác: #!/bin/bash
echo -n "Which file shall I display ?" read
cat $REPLY
hoặc
read -p “File to display: “ FILENAME cat $FILENAME
Các biến đặc biệt
Các biến đặc biệt chỉ có thể được tham chiếu và được tự động thiết lập bởi bash. Sau đây là một số biến đặc biệt thông dụng nhất:
$* Liệt kê tất các các biến được nhập tại dòng lệnh $# Số lượng các đối sốđợc nhập tại dòng lệnh $0 Tên của script $! PID của câu lệnh nền gần nhất $$ PID của shell hiện tại $? Mã thoát của dòng lệnh cuối cùng
Đối với các tham số vị trí $1, $2 vv … phép toán dịch chuyển shift sẽ đặt lại tên mỗi tham số một cách tuần hoàn theo cách sau.
$2 sẽ thành $1
$3 sẽ thành $2 … vv
Có thể tổng quát lại như sau $(n+1) Æ $n