Xem mẫu
- MÃ NGUỒN MỞ
Giảng viên: ThS. Phan Thanh Toàn
11
v1.0015106225
- BÀI 6
LẬP TRÌNH SHELL TRONG LINUX
Giảng viên: ThS. Phan Thanh Toàn
v1.0015106225 2
- MỤC TIÊU BÀI HỌC
• Liệt kê được các lệnh cơ bản của shell.
• Vận dụng ngôn ngữ shell vào viết một số
chương trình đơn giản.
• Vận dụng được ngôn ngữ C trong môi
trường Linux.
v1.0015106225 3
- CÁC KIẾN THỨC CẦN CÓ
Để hiểu rõ bài này, yêu cầu sinh viên cần có các
kiến thức cơ bản liên quan đến các môn học sau:
• Công nghệ phần mềm;
• Nguyên lí hệ điều hành.
v1.0015106225 4
- HƯỚNG DẪN HỌC
• Đọc tài liệu và tóm tắt những nội dung chính của
từng bài.
• Luôn liên hệ và lấy ví dụ thực tế khi học đến từng
vấn đề̀ và khái niệm.
• Thực hành trực tiếp trên hệ điều hành Linux và
một số phần mềm mã nguồn mở như Open
office, PHP,…
• Làm bài tập và luyện thi trắc nghiệm theo yêu
cầu từng bài.
v1.0015106225 5
- CẤU TRÚC NỘI DUNG
6.1 Tổng quan về lập trình shell trong Linux
6.2 Một số lệnh lập trình Shell
6.3 Lập trình C trên Linux
v1.0015106225 6
- 6.1. TỔNG QUAN VỀ LẬP TRÌNH SHELL TRONG LINUX
6.1.1. Khái niệm về shell
6.1.2. Sử dụng biến
trong lập trình shell
v1.0015106225 7
- 6.1.1. KHÁI NIỆM VỀ SHELL
• Shell là chương trình thông dịch lệnh của hệ điều hành Linux
Tương tác với người dùng theo từng câu lệnh;
Shell đọc lệnh từ bàn phím hoặc tệp tin;
Nhờ nhân của hệ điều hành Linux để thực thi lệnh.
• Shell script: là chương trình shell, bao gồm một tập các lệnh
User
Shell Applications
Low Level Utilities
Kernel
Hardware
v1.0015106225 8
- 6.1.1. KHÁI NIỆM VỀ SHELL (tiếp theo)
• Soạn thảo và thực thi chương trình shell
Sử dụng trình soạn thảo văn bản để tạo chương trình shell script
Nội dung chương trình bao gồm tập các câu lệnh theo cú pháp lệnh trên Linux
Các câu lệnh trên cùng một dòng được ngăn cách bởi dấu chấm phẩy (;)
Thiết lập quyền thực thi cho tệp shell script
chmod o+x
Thực thi chương trình
bash
sh
./
v1.0015106225 9
- 6.1.1. KHÁI NIỆM VỀ SHELL (tiếp theo)
• Ví dụ chương trình shell đơn giản displayInfo.sh
clear
echo “Hello: $USER”
echo “Today is: “; date
echo “Number of user login:”; who | wc –l
echo “Calendar”
• Thiết lập quyền truy cập
chmod 755 displayInfo.sh
• Chạy chương trình shell
./ displayInfo.sh
v1.0015106225 10
- 6.1.1. KHÁI NIỆM VỀ SHELL (tiếp theo)
• Trong Linux có 2 loại biến
Biến do người dùng
Biến hệ thống
định nghĩa
Tạo ra và quản lí bởi hệ điều Tạo ra và quản lí bởi
hành Linux; người dùng;
Tên biến viết hoa. Tên biến viết thường.
• Xem và truy xuất giá trị của biến
$
echo $HOME
echo $USERNAME
Phải có kí hiệu $ trước tên biến
v1.0015106225 11
- 6.1.1. KHÁI NIỆM VỀ SHELL (tiếp theo)
• Một số biến của hệ thống
BASH_VERSION: Tên version của shell;
HOME: Tên thư mục home của người sử dụng;
LOGNAME: Tên đăng nhập của người sử dụng;
OSTYPE: Tiểu hệ điều hành;
PATH: Thiết lập đường dẫn cho hệ thống;
PWD: Thư mục hiện hành của người sử dụng.
• Định nghĩa biến của người dùng
Cú pháp: =
Chú ý:
Không cần khai báo biến trong shell;
Tên biến phân biệt chữ hoa và chữ thường;
Tên biến phải bắt đầu bằng kí tự;
Không sử dụng kí tự đặc biệt trong tên biến
Biến không gán giá trị có giá trị là NULL;
Không sử dụng kí tự đặc biệt trong tên biến.
v1.0015106225 12
- 6.1.1. KHÁI NIỆM VỀ SHELL (tiếp theo)
Ví dụ:
Max=100
Min= 10
Nhiet_do = 35
Hiển thị giá trị của biến
Cú pháp: echo $
Ví dụ:
echo $max
echo $nhiet_do
Chú ý: không được để khoảng trắng ở hai bên toán tử gán (=)
v1.0015106225 13
- 6.2. MỘT SỐ LỆNH LẬP TRÌNH SHELL
6.2.1. Các lệnh cơ bản
6.2.2. Cấu trúc lập trình
trong shell
v1.0015106225 14
- 6.2.1. CÁC LỆNH CƠ BẢN
• Lệnh echo
Cú pháp: echo [tùy chọn] [string, variable]
Lệnh echo hiển thị thông tin ra thiết bị chuẩn, thông tin hiển thị có thể là một hằng
xâu kí tự, giá trị một biến hoặc một biểu thức.
Ví dụ: echo “Hello”, $myname
Một số kí tự đặc biệt
\b: Kí tự backspace (xóa lùi);
\n: Kí tự dòng mới;
\r: Kí tự về đầu dòng;
\t: Kí tự tab.
• Các phép toán số học
Để thực hiện các biểu thức số học sử dụng lệnh expr theo cú pháp sau:
expr
Các toán tử: +, -, *, /, %
Ví dụ: expr 3+2
v1.0015106225 15
- 6.2.1. CÁC LỆNH CƠ BẢN (tiếp theo)
• Các dấu ngoặc
Dấu nháy kép “”:
Các hằng xâu kí tự được đặt trong cặp ngoặc kép;
Ví dụ: echo “Hello $myname”
Lệnh này sẽ hiển thị lời chào với tên được lưu trong biến myname.
Dấu nháy đơn ‘’: Các biến đặt trong cặp nháy đơn sẽ bị vô hiệu hóa
Ví dụ: echo “Hello $myname”
Lệnh này sẽ hiển thị dòng thông báo: Hello myname.
• Trạng thái kết thúc câu lệnh
Linux mặc định trả về:
Trạng thái 0 nếu lệnh kết thúc thành công;
Khác 0 nếu lệnh có lỗi.
Kiểm tra trạng thái kết thúc lệnh: $?
v1.0015106225 16
- 6.2.1. CÁC LỆNH CƠ BẢN (tiếp theo)
• Lệnh đọc dữ liệu từ bàn phím
Cú pháp: read
Lệnh đọc dữ liệu từ bàn phím và lưu vào biến được chỉ định bởi tên biến.
Ví dụ:
echo “Enter Your name:”
read name
echo “Hello: $name”
• Các tham số dòng lệnh
Một chương trình shell có nhiều tham số dòng lệnh, người sử dụng có thể truy
cập và lấy giá trị từ các tham số dòng lệnh của chương trình Shell
Tên lệnh: $0
Các tham số của chương trình: $1, $2,…
Số các tham số: $#
Ví dụ: “echo your program: $0”
v1.0015106225 17
- 6.2.2. CẤU TRÚC LẬP TRÌNH TRONG SHELL
• Cấu trúc rẽ nhánh
Cấu trúc rẽ nhánh là cấu trúc có 1/1 nhóm lệnh được thực hiện hoặc bỏ qua tùy
thuộc vào giá trị của một biểu thức điều kiện.
Cú pháp:
if
then
Khối lệnh
fi
Khối lệnh được thực hiện nếu điều kiện có giá trị đúng (giá trị khác 0).
Ví dụ
if cat $1
then
echo “\n Tệp tin $1 đã tồn tại trên hệ thống”
fi
v1.0015106225 18
- 6.2.2. CẤU TRÚC LẬP TRÌNH TRONG SHELL (tiếp theo)
• Cấu trúc rẽ nhánh đầy đủ
Cú pháp
if then
Khối lệnh 1
else
Khối lệnh 2
fi
• Lệnh test
Lệnh test được sử dụng để kiểm tra một biểu thức là đúng hay sai;
Trả về 0 nếu biểu thức đúng;
Trả về khác 0 nếu biểu thức sai;
Cú pháp: test ;
Biểu thức có thể là: số nguyên, các kiểu tệp, xâu kí tự.
v1.0015106225 19
- 6.2.2. CẤU TRÚC LẬP TRÌNH TRONG SHELL (tiếp theo)
• Lệnh lặp for: Trong Linux lệnh for có thể thực hiện theo một số dạng sau
Cú pháp:
for {tên biến} in {danh sách giá trị}
do
Khối lệnh
done
for (expr1; expr2; expr3)
do
Khối lệnh
done
Trong đó: expr1, expr2, expr3 là các biểu thức.
v1.0015106225 20
nguon tai.lieu . vn