Chương 6 : Giao diện dòng lệnh
6.6. Lập trình Shell
6.6.1. Lệnh echo
Chức năng: Hiện một dịng văn bản ra màn hình Cú pháp: echo [-n] <dịng văn bản>
Trong đó [-n] chỉ định sẽ khơng xuống dịng sau khi đưa ra màn hình dịng văn bản.
Ví dụ: Echo Khoa Điện tử - Tin học Trên màn hình sẽ xuất hiện dịng chữ Khoa Điện tử - Tin học
6.6.2. Lệnh read
Chức năng: đọc từ bàn phím một xâu ký tự và ghi xâu đó vào một biến Cú pháp: Read <tên biến>
Ví dụ:Echo –n Ho va ten: Read hoten
6.6.3. Sử dụng biến
Trong lập trình Shell khơng cần phải khai báo biến trước khi dùng mà biến sẽ được tự động tạo và khai báo khi lần đầu tiên tên biến xuất hiện. Mặc định là tất cả các biến đều được khởi tạo và chứa giá trị kiểu chuỗi. Shell và một vài lệnh tiện ích sẽ tự động chuyển thành chuỗi, thành số để thực hiện pháp tính khi nó u cầu.
Bên trong các Script của Shell ta có thể lấy về nội dung của biến bằng cách dùng dấu $ đặt trước tên biến. Để hiển thị nội dung biến có thể dùng lệnh echo. Khi gán nội dung cho biến ta không cần phải dùng ký tự $.
Ví dụ: tạo file vd1.sh chứa các lệnh sau: #! /bin/sh Xinchao=hello Echo $xinchao
Xinchao=‖I am here‖ Xincho=12+1 Echo $xinchao
Khi chạy đoạn lệnh này, trên màn hình sẽ xuất hiện như sau:
Ta có thể sử dụng lệnh read để đọc nhập dữ liệu cho người dùng đưa vào và giữ lại trong biến để sử dụng.
Ví dụ:
Read –n yourname Minh Khai
Echo Hello $yourname Hello Minh Khai
+ Dấu bọc chuỗi (quoting)
Thơng thường tham số dịng lệnh thường cách nhau bằng một khoảng trắng. Khoảng trắng có thể là ký tự spacebar, tab hoặc ký tự xuống dòng.
pjair bọc chuỗi bằng dấu nháy đơn hoặc dấu nháy kép.
Dấu nháy kép được dùng trong trường hợp biến chuỗi của ta có khoảng trắng. Tuy nhiên với dấu nháy kép, ký hiệu biến $ vẫn có hiệu lực. Nội dung của biễn sẽ được thay thế trong chuỗi, dấu nháy đơn sẽ có hiệu lực mạnh hơn, nếu biến có ký tự $ đặt trong chuỗi có dấu nháy đơn, nó sẽ bị vơ hiệu hóa thì có thể dùng dấu \ để hiển thị ký tự đặc biệt $ trong chuỗi.
+ Biến mơi trường (environment variable)
Khi trình Shell khởi động, nó cung cấp sẵn cho ta một số biến được khai báo và gán trị mặc định, chúng được gọi là các biến môi trường . Các biến này thường được viết hoa để phân biệt với biến do người dùng tự định nghĩa (thường là ký tự viết không hoa). Nội dung các biến này thường tùy vào thiết lập của hệ thống và người quản trị cho phép sử dụng.
Danh sách của các biến mơi trường khá nhiều nhưng nhìn chung ta nên nhớ một số biến môi trường chủ yếu sau:
Bảng 6.6.3.1 Một số biến môi trường
Biến môi trường Ý nghĩa
$HOME Chứa nội dung thư mục (Thư mục đầu tiên khi user đăng nhập) $PATH Chứa danh sách các đường dẫn (phân cách bằng dấu hai chấm :).
Linux thường tìm các lệnh cần thi hành trong biến $PATH
$PS1 Dấu nhắc (promt) hiển thị trên dịng lệnh, thơng thường là $ cho user không phải root
$PS2 Dấu nhắc thứ cấp báo cho người dùng nhập thêm thông tin trước khi lệnh thực hiện, thường là dấu >
$IFS
Dấu phân cách các trường trong danh sách chuỗi. Biến này chứa danh sách các ký tự mà Shell dùng tách chuỗi (thường là tham số trên trong dịng lệnh). Ví dụ: $IFS thường chứa ký tự Tab, ký tự trắng hoặc ký tự xuống hàng
$0 Chứa tên chương trình gọi trên dịng lệnh $# Tham số truyền trên dịng lệnh
$$
Mã tiến trình (process id) của Shell script khi thực thi bởi một số process id của tiến trình là duy nhất trên toàn hệ thống vào lúc script ùng con số này để tạo ra các tên file tạm.
Câu hỏi ơn tập chương
1. Trình bày khái niệm và phân loại Shell tong Redhat Linux?
2. Trình bày các lệnh cơ bản trên Linux? Nêu cụ thể ứng dụng của từng câu lệnh khi thao tác với Linux?
3. Trình bày các phím tắt trong cửa sổ GNOME và OpenOffice? 4. Nêu chức năng, cú pháp các lệnh tạo, xóa tập tin và thư mục? 5. Trình bày các bước lập trình Shell? Cho ví dụ minh họa?