Bài giảng Hệ điều hành mã nguồn mở - Chương 7: Lập trình Shell cơ bản cung cấp cho người học các kiến thức: Khái niệm Shell script, các loại Shell trong Linux, thông dịch, tham biến trong Shell, lệnh kiểm tra điều kiện, cấu trúc điều khiển trong Shell, phép toán số học trong Shell.
TRƯỜNG ĐẠI HỌC SÀI GỊN CHƯƠNG 7: LẬP TRÌNH SHELL CƠ BẢN GV: LƯƠNG MINH HUẤN NỘI DUNG Khái niệm Shell script Các loại Shell Linux Thông dịch Tham biến Shell Lệnh kiểm tra điều kiện Cấu trúc điều khiển Shell I.Phép toán số học Shell I KHÁI NIỆM SHELL SCRIPT Máy tính thực lệnh dạng nhị phân (bit 0, 1), ọi mã nhị phân Các máy tính muốn thực chư ình người dùng phải nạp chương trình dạng bit v Đây điều phiền toái khó khăn với ng Để khắc phục nhược điểm nhà thiết kế xây dựng hệ ành có kèm theo chương trình đặc biệt hơng qua chương trình người dùng nhập lệnh ạng ngôn ngữ cấp cao (tiếng Anh) để yêu cầu hệ điều hành iện cơng việc Chương trình đặc biệt Shell (Bộ thơng dịch lệnh) I KHÁI NIỆM SHELL SCRIPT Hệ điều hành MS-DOS Windows có mơi trường đánh command-line, hệ điều hành Unix Linux có mơi trường Sh Shell không thành phần hệ điều hành mà sử dụn điều hành để thực thi lệnh, thao tác file… Hệ điều hành Linu thể có nhiều loại Shell khác Shell nơi cho phép người dùng nhập lệnh (thơng thường từ phím) thực thi lệnh Nhưng thay người dùng nhập câu lệnh thực thi chúng cách người dùng có lưu lệnh vào file text yêu cầu shell thực Điều gọi shell script I KHÁI NIỆM SHELL SCRIPT Những tính shell Xử lý tương tác (Interative processing) Chạy (Background) Chuyển hướng (Redirection) Ống dẫn (Pipe) Tập tin lệnh (Shell scripts) Biến shell (Shell variables) Dùng lại lệnh thực (Command history) Cấu trúc lệnh ngơn ngữ lập trình Tự động hồn tất tên tập tin lệnh Bí danh cho lệnh (Command alias) I KHÁI NIỆM SHELL SCRIPT dụ: / b i n / bash ear o ” Hello $USER” o −n “Today is” e ”+%A %d %B %Y” o −n “There is/are” o | wc −l o connection on $HOSTNAME o ” Calendar ” ; c a l it II CÁC LOẠI SHELL TRONG LINUX Shell Bourne (sh) Steven Bourne viết, Shell nguyên có mặt hầu hết hệ thống Unix/Linux…Nó hữu d cho việc lập trình Shell khơng xử lý tương tác n dùng Shell khác… Bash shell (Bourne Again Shell), thường biết có sh Đây phần mở rộng sh, kế thừa g có phát huy sh chưa có…Nó có giao diện lập mạnh linh hoạt…Cùng với giao diện lệnh dễ dung…Đâ Shell cài đặt mặc định hệ thống Linux II CÁC LOẠI SHELL TRONG LINUX csh (C Shell), đại học Berkeley, tcsh version cải tiến csh Đáp ứng tương thích cho người dùng…Nó hỗ trợ m cho Programmer C…và với đặc tính tự động hồn th dịng lệnh… ksh (Korn Shell) David Korn Có thể nói S uyệt vời, kết hợp tính ưu việt sh csh… Ngồi cịn có số Shell khác như: ssh, nfssh, mc III THƠNG DỊCH Shell thơng dịch lệnh: Login vào máy tính -> dấu nhắc shell -> yêu cầu lệnh -> shell ệnh -> shell tìm kiếm tải tiện ích vào nhớ -> Tìm thấy -> shell thực thi tiện ích -> trở lại dấu nhắc Khơng tìm thấy -> shell báo lỗi hiển thị dấu nhắc Môi trường làm việc gồm hai thành phần Môi trường terminal Môi trường shell III THƠNG DỊCH Ta tạo file sh để bắt đầu thực shell script Một bash shell luôn bắt đầu bằng: #! /bin/bash hay #! /bin/sh Chạy bash shell Gán quyền execute cho file: chmod +x my-script Chạy câu lệnh sau : /my-script bash my-script VI.2 CẤU TRÚC LẶP VI.2 CẤU TRÚC LẶP Vòng lặp while: vòng lặp thực điều kiện while ; done Ví dụ: Tạo tập tin vịnglapwhile có nội dung sau: chon=‘y’ while [ $chon = ‘y’ ] || [ $chon = ‘Y’ ] echo “Chao ban” echo “An phim Y/y de tiep tuc”; read chon done VD: ile [ $a –lt 10 ] echo $a let a=$a+1 ne VI.2 CẤU TRÚC LẶP VI.2 CẤU TRÚC LẶP VI.2 CẤU TRÚC LẶP Vòng lặp until: vòng lặp kết thúc điều kiện until ; done Ví dụ: Tạo tập tin vịnglapuntil có nội dung sau: echo “Nhap vao so n: ” read n until [ $n –le 10 ] echo “$n lon hon 10”; n=` expr $n -1 ` done VD: il [$a –gt 10] echo $a let a=a+1 ne VI.2 CẤU TRÚC LẶP VII PHÉP TOÁN SỐ HỌC TRONG SHELL et Toán tử [ ] Toán tử (( )) expr bc VII.1 LET Lệnh let dùng để thực trực tiếp phép toá Trong sử dụng let, sử dụng tên biến mà kh cần có tiền tố $ Tốn tăng: Tốn giảm: VII.2 TỐN TỬ [ ] ốn tử [] dùng giống lệnh let dụng tiền tố $ toán hạng [] hợp lệ VII.3 TỐN TỬ (( )) Tốn tử (( )) dùng cho phép tốn số học ố $ với tên biến dùng với toán hạng (( )) VII.4 EXPR expr tiện ích sử dụng cho phép toán đơn giản: VII.5 BC Tất phương pháp không hỗ trợ số thực dấu chấm đ hoạt động số nguyên bc, tiện ích nâng cao cho phép tốn cao cấp Nó có nhiều chọn khác Chúng ta thực phép toán dấu c động sử dụng hàm nâng cao Ví dụ: VII.5 BC Lấy số thập phân với bc Trong ví dụ sau, thơng số scale = thiết lập số chữ số sau dấu phân Do đó, kết xuất bc số với số thập ph VII.5 BC Chuyển đổi hệ số với bc Chúng ta chuyển đổi qua lại hệ số nhị phân bát phân, thập phân … với qua bc: VII.5 BC Tính tốn bậc lũy thừa ... để yêu cầu hệ điều hành iện cơng việc Chương trình đặc biệt Shell (Bộ thông dịch lệnh) I KHÁI NIỆM SHELL SCRIPT Hệ điều hành MS-DOS Windows có mơi trường đánh command-line, hệ điều hành Unix... hệ điều hành Unix Linux có môi trường Sh Shell không thành phần hệ điều hành mà sử dụn điều hành để thực thi lệnh, thao tác file… Hệ điều hành Linu thể có nhiều loại Shell khác Shell nơi cho phép... CẤU TRÚC RẼ NHÁNH Cấu trúc lựa chọn case case in ) ;; ) ;; … ) esac ;; Ví dụ: Tạo menu cho phép người dùng chọn Tạo tập tin