Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 52 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
52
Dung lượng
656,75 KB
Nội dung
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 I Khái niệm Shell script II Các loại Shell Linux III Thông dịch IV Tham biến Shell V Lệnh kiểm tra điều kiện VI Cấu trúc điều khiển Shell VII.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), gọi mã nhị phân Các máy tính muốn thực chương trình người dùng phải nạp chương trình dạng bit Đây điều phiền tối khó khăn với người Để khắc phục nhược điểm nhà thiết kế xây dựng hệ điều hành có kèm theo chương trình đặc biệt Thơng qua chương trình người dùng nhập lệnh dạng ngôn ngữ cấp cao (tiếng Anh) để yêu cầu hệ điều hành thực công việc Chương trình đặc biệt gọi là 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 lệnh command-line, hệ điều hành Unix Linux có mơi trường Shell Shell không thành phần hệ điều hành mà sử dụng hệ điều hành để thực thi lệnh, thao tác file… Hệ điều hành Linux 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ừ bàn 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 lưu lệnh vào file text yêu cầu shell thực file Điều gọi là 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 Ví dụ: #! / b i n / bash clear echo ” Hello $USER” echo −n “Today is” date ”+%A %d %B %Y” echo −n “There is/are” who | wc −l echo connection on $HOSTNAME echo ” Calendar ” ; c a l exit II CÁC LOẠI SHELL TRONG LINUX Shell Bourne (sh) Steven Bourne viết, Shell nguyên thuỷ có mặt hầu hết hệ thống Unix/Linux… Nó hữu dụng cho việc lập trình Shell khơng xử lý tương tác người dùng Shell khác… Bash shell (Bourne Again Shell), thường biết shell có sh Đây phần mở rộng sh, kế thừa sh có phát huy sh chưa có…Nó có giao diện lập trình mạnh linh hoạt…Cùng với giao diện lệnh dễ dung…Đây 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ạnh cho Programmer C…và với đặc tính tự động hồn thành dịng lệnh… ksh (Korn Shell) David Korn Có thể nói Shell tuyệ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, mcsh… 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 đọc lệ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 VI.2 CẤU TRÚC LẶP VD: a=0 while [ $a –lt 10 ] echo $a let a=$a+1 done 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 VI.2 CẤU TRÚC LẶP VD: a=0 until [$a –gt 10] echo $a let a=a+1 done VII PHÉP TOÁN SỐ HỌC TRONG SHELL let Toán tử [ ] Toán tử (( )) expr bc VII.1 LET Lệnh let có thể dùng để thực trực tiếp phép toán cơ Trong sử dụng let, sử dụng tên biến mà khơng cần có tiền tố $ Tốn tăng: Tốn giảm: VII.2 TỐN TỬ [ ] Tốn tử [] dùng giống lệnh let Sử 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 toán số học Tiền tố $ với tên biến dùng với toán hạng (( )) VII.4 EXPR expr là tiện ích sử dụng cho phép tốn đơn giản: VII.5 BC Tất phương pháp không hỗ trợ số thực dấu chấm động, 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 tùy chọn khác Chúng ta thực phép toán dấu chấm độ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 thập phân Do đó, kết xuất bc số với số thập phân: 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 ... SCRIPT Máy tính thực lệnh dạng nhị phân (bit 0, 1), cịn gọi mã nhị phân Các máy tính muốn thực chương trình người dùng phải nạp chương trình dạng bit Đây điều phiền toái khó khăn với người... hệ điều hành có kèm theo chương trình đặc biệt Thơng qua chương trình người dùng nhập lệnh dạng ngôn ngữ cấp cao (tiếng Anh) để yêu cầu hệ điều hành thực cơng việc Chương trình đặc biệt gọi... if if then Ví dụ: Nhập điểm cho môn học xuất kết Tạo tập tin ketqua có nội dung sau: echo ? ?Chương trinh kết môn học” else echo “Nhập vào điểm” fi read diem