1. Trang chủ
  2. » Giáo Dục - Đào Tạo

LẬP TRÌNH SHELL (hệ điều HÀNH SLIDE)

31 79 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Khoa Công nghệ Thông tin Trường Đại học Nông lâm TP Hồ Chí Minh Chương LẬP TRÌNH SHELL Bài giảng môn học Nhập Môn Hệ Điều Hành Khoa Công nghệ Thông tin Trường Đại học Nông lâm TP Hồ Chí Minh Lập trình SHELL Linux Shell Khi bắt đầu lập trình UNIX hay Linux C hay ngôn ngữ khác  phải tiến hành tiếp cận tìm hiểu khái niệm SHELL Bài giảng môn học Nhập Môn Hệ Điều Hành Khoa Công nghệ Thông tin Trường Đại học Nông lâm TP Hồ Chí Minh • Một số Shell thơng dụng sau: •Chuẩn thường sử dụng Bash Shell Thơng thường cài đặt, trình cài đặt đặt bash shell khởi động •Tên shell có tên bash đặt thư mục /bin Bài giảng môn học Nhập Môn Hệ Điều Hành Khoa Công nghệ Thông tin Trường Đại học Nông lâm TP Hồ Chí Minh Sử dụng Shell ngơn ngữ lập trình • Có hai cách để viết chương trình điều khiển shell – Gõ chương trình trực tiếp dòng lệnh (kể lệnh điều khiển if, for, case, v.v…) – Gộp câu lệnh vào tập tin yêu cầu shell thực thi tập tin chương trình (Ghi nhớ phải đặt quyền execute cho tập tin thực thi được) 2.1 Điều khiển Shell từ dòng lệnh • Thực ví dụ: Giả sử ổ cứng có nhiều file nguồn c Cơng việc đặt tìm hiển thị tất file nguồn chứa chuỗi main() Bài giảng môn học Nhập Môn Hệ Điều Hành Khoa Công nghệ Thông tin Trường Đại học Nơng lâm TP Hồ Chí Minh • Mã nguồn thực thi công việc sau: # for file in * >do > if grep –l ‘main()’ $file > then > more $file > fi >done • Trong ví dụ trên, lệnh for…do kết thúc lệnh done HĐH nhận biết bắt đầu thực thi tất ta gõ vào lệnh for (Khi lệnh chưa hoàn chỉnh shell chuyển thành “>”) • Như trên, file biến shell, * tập hợp đại diện cho tên tập tin tìm thấy thư mục hành • Một cách khác để thực thi lệnh là: #for file in *; do; if grep –l ‘main()’ $file; then; more $file; fi; done Bài giảng môn học Nhập Môn Hệ Điều Hành Khoa Công nghệ Thông tin Trường Đại học Nơng lâm TP Hồ Chí Minh 2.2 Điều khiển Shell tập tin kịch (Script file) • Tiến hành tạo tập tin lệnh cat sau: #cat > first.sh #!/bin/sh #Vi du ve Script file for file in * if grep –l ‘main()’ $file then more $file fi done exit • Lưu tập tin lại tiến hành thiết lập quyền thực thi cho tập tin • #chmod +x first.sh Bài giảng môn học Nhập Môn Hệ Điều Hành Khoa Công nghệ Thông tin Trường Đại học Nông lâm TP Hồ Chí Minh • Như ví dụ bên ta thấy dấu “#” có hai chức (Trong đoạn thân chương trình) – #  Chức khai báo dịng thích (comment) – #!  Chức thị yêu cầu shell triệu gọi shell sh nằm thư mục /bin • Dịng lệnh exit có chức yêu cầu Script sau thực thi trả mã lỗi  Điều nên thể q trình lập trình • Trong UNIX/Linux, không yêu cầu phải đặt phần mở rộng cho tên tập tin chương trình Tuy nhiên, sử dụng phần mở rộng sh để dễ nhận diện dạng tập tin script shell (tương tự tập tin bat MS-DOS) • Để biết tập tin có phải Script định dạng khác, ta sử dụng lệnh file • Ví dụ: #file first.sh Bài giảng môn học Nhập Môn Hệ Điều Hành Khoa Công nghệ Thông tin Trường Đại học Nông lâm TP Hồ Chí Minh 2.3 Thực thi Script file • Thơng thường chương trình thực thi shell thường đặt /bin Do đó, để thực thi Shell Script ta triệu gọi trình Shell với tên tập tin Script làm đối số #/bin/sh first.sh • Tuy nhiên, để thực lệnh cách ngắn ta sử dụng theo phương cách sau: #first.sh • Cũng lệnh khơng thực thành công ta nhận câu thông báo lỗi “Command Not Found”  Nguyên nhân biến môi trường PATH thường khơng chứa đường dẫn tới vị trí thư mục hành #PATH=$PATH: • Hoặc thực tự động (mỗi lần login) cách đưa dòng PATH=$PATH: vào cuối tập tin bash_profile người dùng Bài giảng môn học Nhập Môn Hệ Điều Hành Khoa Công nghệ Thông tin Trường Đại học Nông lâm TP Hồ Chí Minh Cú pháp ngơn ngữ Shell 3.1 Sử dụng biến • Thơng thường, biến khơng cần phải khai báo trước sử dụng  biến tự động tạo khai báo lần tên biến xuất (biến lúc chứa giá trị kiểu chuỗi) • Chú ý phân biệt chữ HOA/thường Ví dụ: foo, Foo, FOO ba biến khác • Để lấy nội dung tên biến  sử dụng dấu “$” • Ví dụ: #xinchao=Hello #echo $xinchao Hello #xinchao=“I am here” #echo $xinchao I am here #xinchao=12+1 #echo $xinchao 12+1 Bài giảng môn học Nhập Môn Hệ Điều Hành Khoa Công nghệ Thông tin Trường Đại học Nơng lâm TP Hồ Chí Minh • Sử dụng lệnh read để đọc giá trị nhập liệu người dùng nhập vào (như hàm readln() ngôn ngữ Pascal scanf() ngơn ngữ C++) • Ví dụ: #read yourname Nguyen Van An #echo $yourname Nguyen Van An #read yourname Nguyen Van Ba #echo “Hello” $yourname Hello Nguyen Van Ba Bài giảng môn học Nhập Môn Hệ Điều Hành 10 Khoa Công nghệ Thông tin Trường Đại học Nông lâm TP Hồ Chí Minh • Ví dụ sau cho thấy khác hai biến $* $@ #IFS=“^” #set foo bar bam #echo “$@” foo bar bam #echo “$*” foo^bar^bam #unset IFS #echo “$*” foo bar bam • Lệnh set thiết lập tham số dòng lệnh foo bar bam Những tham số ảnh hưởng đến biến mơi trường $* $@ • Biến $# chứa số tham số dòng lệnh: #echo “$#” Bài giảng môn học Nhập Môn Hệ Điều Hành 17 Khoa Công nghệ Thông tin Trường Đại học Nơng lâm TP Hồ Chí Minh • Ví dụ: try_variables.sh #!/bin/sh salutation=“Hello” echo $salutation echo “The program $0 is now running” echo “The first parameter was $1” echo “The second parameter was $2” echo “The parameter list was $*” echo “The user’s home directory is $HOME” echo “Please enter a new greeting” read salutation echo $salutation echo “The script is now complete” exit Bài giảng môn học Nhập Môn Hệ Điều Hành 18 Khoa Công nghệ Thông tin Trường Đại học Nơng lâm TP Hồ Chí Minh • Chạy try_variables.sh từ dòng lệnh với tham số sau: #./try_variables.sh one two three Hello The program /try_variables.sh is now running The first parameter was one The second parameter was two The list parameter was one two three The user’s home directory is /root Please enter a new greeting Hello World Hello World The script is now complete Bài giảng môn học Nhập Môn Hệ Điều Hành 19 Khoa Công nghệ Thơng tin Trường Đại học Nơng lâm TP Hồ Chí Minh 3.2 Điều kiện Khả kiểm tra điều kiện đưa định rẽ nhánh thích hợp tùy theo điều kiện luận lý hay sai tảng tất ngôn ngữ lập trình 3.2.1 Lệnh test [] • Sử dụng lệnh [] test để kiểm tra điều kiện boolean (True or False) • Lệnh [] trơng đơn giản dễ hiểu, thường dùng nhiều rộng rãi lệnh test • Cách sử dụng hai lệnh tương đương if test –f hello.c if [ -f hello.c ] then then … … fi fi   Chú ý phải đặt khoảng trắng lệnh [] biểu thức kiểm tra Bài giảng môn học Nhập Môn Hệ Điều Hành 20 Khoa Công nghệ Thông tin Trường Đại học Nơng lâm TP Hồ Chí Minh • Lệnh test có điều kiện cho phép kiểm tra kiểu sau: • So sánh chuỗi Bài giảng môn học Nhập Môn Hệ Điều Hành 21 Khoa Công nghệ Thông tin Trường Đại học Nông lâm TP Hồ Chí Minh •So sánh tốn học •So sánh điều kiện tập tin Bài giảng môn học Nhập Môn Hệ Điều Hành 22 Khoa Công nghệ Thông tin Trường Đại học Nơng lâm TP Hồ Chí Minh 3.3.2 Lệnh elif • Chức năng: Cũng tương tự if  kiểm tra điều kiện hay sai để thực thi biểu thức thích hợp • Ví dụ: xét if_control.sh elif_control.sh sau #!/bin/sh echo “Is it morning? Please anwser yes or no” read timeofday if [ $timeofday = “yes” ]; then echo “Good morning” else echo “Good Aftenoon” fi exit Bài giảng môn học Nhập Môn Hệ Điều Hành 23 Khoa Công nghệ Thông tin Trường Đại học Nông lâm TP Hồ Chí Minh #!/bin/sh echo “Is it morning? Please anwser yes or no” read timeofday if [ $timeofday = “yes” ]; then echo “Good morning” elif [ $timeofday = “no” ]; then echo “Good afternoon” else echo “Sorry, $timeofday not recognized” exit fi exit Bài giảng môn học Nhập Môn Hệ Điều Hành 24 Khoa Công nghệ Thơng tin Trường Đại học Nơng lâm TP Hồ Chí Minh 3.3.4 Lệnh for • Chức năng: Để thực việc lặp lại số lần công việc với giá trị xác định • Cấu trúc: for in done Bài giảng môn học Nhập Môn Hệ Điều Hành 25 Khoa Công nghệ Thông tin Trường Đại học Nông lâm TP Hồ Chí Minh Ví dụ 1: In giá trị tập hợp cat > for_loop.sh #!/bin/sh for i in echo $i done exit Bài giảng môn học Nhập Môn Hệ Điều Hành 26 Khoa Công nghệ Thông tin Trường Đại học Nông lâm TP Hồ Chí Minh 3.3.5 Ước lượng tóan học • Lệnh expr: Dùng để ước lượng giá trị đối số biểu thức, dùng việc đổi giá trị từ chuỗi sang số • Ví dụ x= 12 x=`expr $x + 1` =>Kết x= 13 • Chú ý cặp dấu `expr $x + 1` dấu với phím ~ bàn phím Bài giảng mơn học Nhập Môn Hệ Điều Hành 27 Khoa Công nghệ Thông tin Trường Đại học Nơng lâm TP Hồ Chí Minh • Các shell cung cấp cú pháp $(( )) nhanh hiệu expr việc ước lượng biểu thức bên ( ) • Ví dụ cat > evaluate.sh #!/bin/sh for x in x=$(($x+1)) done exit Bài giảng môn học Nhập Môn Hệ Điều Hành 28 Khoa Công nghệ Thông tin Trường Đại học Nông lâm TP Hồ Chí Minh 3.3.5 Lệnh while • Chức năng: Có chức lệnh for nhằm đáp ứng việc lặp tập hợp lớn số lần lặp khơng biết trước • Cấu trúc: while done Bài giảng môn học Nhập Môn Hệ Điều Hành 29 Khoa Công nghệ Thơng tin Trường Đại học Nơng lâm TP Hồ Chí Minh • Ví dụ 1: cat > password.sh !#/bin/sh echo “Enter passwrod” read pw while [ “$pw” != “secret” ] echo “sorry, try again” read pw done exit Bài giảng môn học Nhập Môn Hệ Điều Hành 30 Khoa Công nghệ Thông tin Trường Đại học Nông lâm TP Hồ Chí Minh • Ví dụ 2: cat > while_test.sh !#/bin/sh f=1 while [ “$f” -le 10 ] echo “Here $f” f=$(($f+1)) done exit Bài giảng môn học Nhập Môn Hệ Điều Hành 31 ... Hồ Chí Minh Lập trình SHELL Linux Shell Khi bắt đầu lập trình UNIX hay Linux C hay ngôn ngữ khác  phải tiến hành tiếp cận tìm hiểu khái niệm SHELL Bài giảng môn học Nhập Môn Hệ Điều Hành Khoa... Môn Hệ Điều Hành Khoa Công nghệ Thông tin Trường Đại học Nơng lâm TP Hồ Chí Minh Sử dụng Shell ngơn ngữ lập trình • Có hai cách để viết chương trình điều khiển shell – Gõ chương trình trực tiếp... số Shell thơng dụng sau: •Chuẩn thường sử dụng Bash Shell Thơng thường cài đặt, trình cài đặt đặt bash shell khởi động •Tên shell có tên bash đặt thư mục /bin Bài giảng môn học Nhập Môn Hệ Điều

Ngày đăng: 29/03/2021, 08:34

Xem thêm:

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w