Tài liệu này dành cho sinh viên, giáo viên khối ngành công nghệ thông tin tham khảo và có những bài học bổ ích hơn, bổ trợ cho việc tìm kiếm tài liệu, giáo án, giáo trình, bài giảng các môn học khối ngành công nghệ thông tin
1 Unix operating system - Nguyen Tri Thanh - Sep-10 Hệ ñiều hành UNIX-Linux Chương 8. Lập trình Shell 2 Unix operating system - Nguyen Tri Thanh - Sep-10 Chương trình shell Chương trình shell là một tập hợp các câu lệnh viết trong một file text Nó giống chương trình .bat trong MSDOS nhưng có sức mạnh lớn hơn nhiều Chương trình shell có thể nhận dữ liệu từ người dùng, từ file và in kết quả ra màn hình Có thể dùng ñể tạo ra một lệnh riêng cho mình Shell giúp tiết kiệm thời gian ñể làm các công việc hàng ngày Các bước ñể tạo ra một chương trình shell Sử dụng một chương trình soạn thảo text ñể tạo ra một file chương trình Thay ñổi thuộc tính của file vừa tạo ra thêm thuộc tính khả thi: chmod +x ./script.sh Có thể chạy luôn chương trình bằng lệnh: sh script.sh Các chương trình shell nên ñặt ñuôi là .sh 3 Unix operating system - Nguyen Tri Thanh - Sep-10 Trình soạn thảo văn bản trong Linux • Trình soạn thảo vim 4 Unix operating system - Nguyen Tri Thanh - Sep-10 Trình soạn thảo văn bản trong Linux • Trình soạn thảo của mc 5 Unix operating system - Nguyen Tri Thanh - Sep-10 Các loại shell Muốn xem các loại shell có trong hệ thống ta sử dụng lệnh: cat /etc/shells Muốn xem shell hiện tại: echo $SHELL Phần này chỉ ñề cập ñến lập trình shell trong bash 6 Unix operating system - Nguyen Tri Thanh - Sep-10 Các ký hiệu ñặc biệt trong shell Khi ñặt tên biến cần tránh xung ñột với các ký tự ñặc biệt này 7 Unix operating system - Nguyen Tri Thanh - Sep-10 Sử dụng biến trong shell Biến hệ thống ñược Linux tạo ra và quản lý (CHỮ IN HOA) Biến người dùng: ñược người dùng tạo ra và quản lý (chữ thường) 8 Unix operating system - Nguyen Tri Thanh - Sep-10 Quy tắc ñặt tên biến Tên biến phải bắt ñầu với một ký tự chữ cái hoặc dấu gạch dưới (_), tiếp theo là một hoặc một số ký tự chữ hoặc số Biến ñược khởi tạo khi ta gán giá trị cho biến Không thêm các dấu cách vào trước và sau dấu gán, khi gán giá trị cho biến Biến trong Linux phân biệt chữ HOA thường Tìm các biến hợp lệ và khong hợp lệ: no=10 new_variable=“Test” number= 10 1stnumber=10 Truy cập giá trị của một biến ta dùng ký tự $ trước tên biến, xóa 1 biến sử dụng lệnh unset var echo $new_variable Lệnh echo [tùy chọn] [chuỗi, biến] dùng ñể hiển thị văn bản hoặc giá trị của biến ra màn hình Tùy chọn: -n không hiển thị ký hiệu xuống dòng, -e hiển thị các ký tự ẩn ñặc biệt sau trong chuỗi 9 Unix operating system - Nguyen Tri Thanh - Sep-10 Trích dẫn (quoting) Trích dẫn là cách bao quanh một chuỗi bằng cặp dấu nháy Cho phép một số ký tự ñặc biệt giữ nguyên như các ký tự bình thường Có 2 loại trích dẫn mạnh (‘ …’) và trích dẫn yếu (“ … ”) Trích dẫn yếu vẫn biên dịch các biến trong chuỗi echo “Giá trị của biến là: $var” Trích dẫn mạnh bảo toàn toàn bộ các ký tự trong chuỗi echo ‘Giá trị của tham số ñầu tiên là: $var’ → Giá trị của tham số ñầu tiên là: $var ls -l '[Vv]*‘ → ls: [Vv]*: No such file or directory 10 Unix operating system - Nguyen Tri Thanh - Sep-10 Tính toán số học trên các biến Tính toán trong shell ñược thực hiện với các ñối số nguyên Các phép toán gồm có: cộng (+), trừ (-), nhân (*), chia (/), mod (%) Tính toán trên shell có dạng: `expr <biểu thức>` Ví dụ var1=10 var2=20 sum=`expr $var1 + $var2 ` product=`expr $var1 \* $var2 ` echo “Tổng của $var1 và $var2 là: $sum, tích của chúng là $product” . UNIX-Linux Chương 8. Lập trình Shell 2 Unix operating system - Nguyen Tri Thanh - Sep-10 Chương trình shell Chương trình shell là một tập hợp các câu lệnh viết trong một file text Nó giống chương trình. cat /etc/shells Muốn xem shell hiện tại: echo $SHELL Phần này chỉ ñề cập ñến lập trình shell trong bash 6 Unix operating system - Nguyen Tri Thanh - Sep-10 Các ký hiệu ñặc biệt trong shell Khi. # Dòng chú thích ñầu tiên trong file chương trình shell sẽ báo cho hệ thống chọn shell (chương trình) nào ñể thực hiện chương trình (ngầm ñịnh là shell hiện tại) #!/bin/bash #!/usr/bin/perl