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

Tài liệu hướng dẫn thực hành hệ điều HÀNH lập TRÌNH TRONG môi TRƯỜNG SHELL

52 27 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

Thông tin cơ bản

Định dạng
Số trang 52
Dung lượng 439,71 KB

Cấu trúc

  • BÀI 2. LẬP TRÌNH TRONG MÔI TRƯỜNG SHELL (4)
    • 2.1 Mục tiêu (4)
    • 2.2 Nội dung thực hành (4)
    • 2.3 Sinh viên chuẩn bị (4)
    • 2.4 Hướng dẫn thực hành (5)
    • 2.5 Bài tập ôn tập (50)

Nội dung

LẬP TRÌNH TRONG MÔI TRƯỜNG SHELL

Mục tiêu

Bài thực hành này giúp sinh viên:

Làm quen và tìm hiểu cách sử dụng ngôn ngữ shell để lập trình

Thực hành lập trình một số cầu trúc điều khiển cơ bản của shell

Viết được một số chương trình đơn giản bằng ngôn ngữ shell

Nội dung thực hành

Thực hành các lệnh tương tác với hệ điều hành Linux thông qua shell

Tìm hiểu và thực hành ngôn ngữ shell

Sinh viên chuẩn bị

Đọc phần hướng dẫn thực hành trước ở nhà

Viết lại các đoạn code trong phần 2.4 theo hướng dẫn

Hướng dẫn thực hành

2.4.1 Sử dụng shell như ngôn ngữ lập trình

Shell có thể được sử dụng như một ngôn ngữ lập trình, với hai phương pháp chính để viết chương trình điều khiển shell Phương pháp đầu tiên là nhập lệnh trực tiếp từ dòng lệnh, đây là cách đơn giản nhất Khi đã thành thạo, người dùng có thể gộp các lệnh vào một tệp, tương tự như cách mà DOS gọi tệp *.bat, giúp tối ưu hóa hiệu quả và tận dụng tính năng tự động hóa của shell.

2.4.1.1 Điều khiển shell từ dòng lệnh

Để tìm và hiển thị nội dung các tệp mã nguồn c chứa chuỗi main() trên đĩa cứng một cách hiệu quả, bạn có thể sử dụng lệnh điều khiển shell tự động thay vì phải dùng lệnh grep để tìm từng tệp và sau đó dùng lệnh more để xem nội dung.

$ for file in * do if grep -l 'main( ) ' $file then more $fỉle fi done

Khi bạn nhập một lệnh chưa hoàn chỉnh trong shell, dấu nhắc sẽ chuyển thành >, cho phép bạn tiếp tục nhập cho đến khi lệnh hoàn tất Shell tự động nhận biết thời điểm bắt đầu và kết thúc của lệnh, như trong trường hợp của lệnh for do, kết thúc bằng done Khi bạn gõ xong done, shell sẽ thực thi toàn bộ lệnh từ for Trong ví dụ này, file là một biến trong shell, trong khi * đại diện cho tất cả các tên tệp trong thư mục hiện tại.

Một trong những bất tiện khi điều khiển ngôn ngữ shell từ dòng lệnh là khó khăn trong việc lấy lại khối lệnh đã thực hiện trước đó để sửa đổi và thực thi lại Tuy nhiên, người dùng có thể sử dụng phím lên/xuống để truy xuất các khối lệnh đã nhập.

Đoạn mã trên là cách mà các shell Linux sử dụng để thực thi nhiều lệnh đồng thời trên dòng lệnh, với các lệnh được phân cách bằng dấu chấm phẩy (;) Ví dụ, lệnh kiểm tra các tệp có chứa 'main()' và hiển thị nội dung của chúng nếu có.

Để tạo thư mục myfolder và chuyển vào thư mục này, bạn có thể sử dụng lệnh `mkdir myfolder` và `cd myfolder` Bạn chỉ cần nhấn Enter một lần để thực hiện cả hai lệnh cùng lúc Tuy nhiên, việc kết hợp nhiều lệnh như vậy có thể gây khó khăn và dễ dẫn đến lỗi Các lệnh này chỉ thực sự tiện lợi khi kết hợp từ vài ba lệnh Để dễ dàng bảo trì, bạn có thể đưa các lệnh vào một tập tin script.

4 một tập tin và yêu cầu shell đọc nội dung tập tin để thực thi lệnh Những tập tin như vậy gọi là tập tin kịch bản (shell script)

2.4.1.2 Điều khiển shell bằng tập tin kịch bản (script file)

Để tạo tập tin first.sh, bạn có thể sử dụng lệnh $cat > first.sh hoặc các trình soạn thảo như vi, emacs, mc, hoặc gedit để soạn nội dung cho tập tin này.

# Script này sẽ tìm trong thư mục hiện hành các chuỗi mang nội dung

# main( ), nội dung của fìle sẽ được hiển thị ra màn hình nếu tìm thấy for file in * do if grep -l 'main( ) ' $file then more $fỉle fi done exit 0

Không như chú thích của C, một dòng chú thích (comment) trong ngôn ngữ shell bắt đầu bằng ký tự # Tuy nhiên, ở đây có

Chú thích #!/bin/sh không thực sự là một chú thích mà là chỉ thị yêu cầu shell hiện tại gọi shell sh từ thư mục /bin Shell sh sẽ đảm nhiệm việc thông dịch các lệnh trong tập tin script được tạo ra.

Có thể sử dụng #!/bin/bash thay cho sh trong Linux, vì sh và bash thực chất là một Tuy nhiên, trên các hệ thống Unix, sh vẫn được coi là chuẩn, do đó, lập trình viên nên duy trì thói quen sử dụng shell sh để cảm thấy quen thuộc hơn Để đảm bảo rằng các thay đổi về môi trường do script gây ra không ảnh hưởng đến môi trường làm việc chính, nên chạy script trong một shell phụ, chẳng hạn như sh.

Chỉ thị #! cho phép gọi chương trình trước khi thực thi script tiếp theo Lệnh exit đảm bảo script trả về mã lỗi, điều này quan trọng khi triệu gọi script từ một script khác Trong ví dụ, lệnh exit trả về 0, cho biết script thực thi thành công Dù đã lưu tập tin với đuôi sh, UNIX và Linux không bắt buộc phải có phần đuôi này, và phần đuôi mở hiếm khi được sử dụng trong Linux.

Tập tin script có thể có nhiều định dạng khác nhau, nhưng đuôi sh giúp chúng ta dễ dàng nhận diện rằng đó là một script của shell.

Tập tin script first.sh có thể được thực thi theo hai cách, trong đó cách đơn giản nhất là gọi trình shell và truyền tên tập tin script làm đối số.

Để gọi first.sh từ dòng lệnh như các lệnh Linux thông thường, trước tiên bạn cần chuyển thuộc tính thực thi (x) cho tập tin script bằng lệnh chmod.

Sau đó có thể triệu gọi script theo cách thứ hai tiện lợi hơn: $ first.sh

Nếu lệnh không thực hiện thành công và xuất hiện thông báo lỗi 'command not found', nguyên nhân có thể là do biến môi trường PATH không bao gồm đường dẫn thư mục hiện hành Để khắc phục vấn đề này, bạn có thể thêm đường dẫn thư mục hiện hành vào biến môi trường PATH.

Nếu muốn Linux tự động nhớ thư mục hiện hành mỗi khi đăng nhập bạn có thể thêm lệnh PATH=$PATH : vào cuối tệp

Tệp bash_profile được gọi khi hệ thống đăng nhập, tương tự như autoexec.bat trong DOS Cách đơn giản nhất để xác định thư mục hiện hành là sử dụng dấu "./" ngay trong lệnh.

Bài tập ôn tập

1 Chạy tất cả các đoạn lệnh ví dụ ở phần 2.4 Chụp hình kết quả chạy các file script và lưu vào báo cáo

2 Viết chương trình cho phép nhập vào tên và mssv Kiểm tra nếu mssv đó không trùng với mình thì bắt nhập lại In ra màn hình kết quả

3 Viết chương trình cho phép nhập vào một số n Kiểm tra nếu n < 10 thì bắt nhập lại Tính tổng các số từ 1 đến n In kết quả ra màn hình

4 Viết trình cho phép nhập vào một chuỗi Kiểm tra chuỗi đó có tồn tại trong một file text (ví dụ test.txt) cùng thư mục hay không.

Ngày đăng: 07/04/2022, 09:40

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w