<Trước | Nội dung | Tiếp theo>
Tiếp tục chạy tập lệnh
Trong khi phát triển chương trình của chúng tôi, việc giữ chương trình ở trạng thái có thể chạy được là rất hữu ích. Bằng cách thực hiện điều này và kiểm tra thường xuyên, chúng tôi có thể phát hiện sớm lỗi trong quá trình phát triển. Điều này sẽ làm cho vấn đề gỡ lỗi dễ dàng hơn nhiều. Ví dụ: nếu chúng ta chạy chương trình, thực hiện một thay đổi nhỏ, sau đó chạy lại chương trình và phát hiện ra sự cố thì rất có thể thay đổi gần đây nhất là nguồn gốc của sự cố. Bằng cách thêm các hàm trống, được gọi là sơ khai trong ngôn ngữ của lập trình viên, chúng ta có thể xác minh luồng logic của chương trình ở giai đoạn đầu. Khi xây dựng một sơ khai, bạn nên bao gồm một cái gì đó cung cấp phản hồi cho người lập trình, cho thấy luồng logic đang được thực hiện. Nếu bây giờ chúng ta nhìn vào đầu ra của tập lệnh:
[tôi @ linuxbox ~] $ sys_info_page
Báo cáo thông tin hệ thống cho Twin2
[tôi @ linuxbox ~] $ sys_info_page
Báo cáo thông tin hệ thống cho Twin2
Báo cáo thông tin hệ thống cho linuxbox
Được tạo vào 03/19/2009 04:02:10 PM EDT, bởi tôi
Báo cáo thông tin hệ thống cho linuxbox
Được tạo vào 03/19/2009 04:02:10 PM EDT, bởi tôi
chúng tôi thấy rằng có một số dòng trống trong đầu ra sau dấu thời gian, nhưng chúng tôi không thể chắc chắn về nguyên nhân. Nếu chúng tôi thay đổi các chức năng để bao gồm một số phản hồi:
report_uptime () {
echo "Hàm report_uptime đã được thực thi."
trở lại
}
report_disk_space () {
echo "Hàm report_disk_space đã được thực thi."
trở lại
}
report_home_space () {
echo "Hàm report_home_space đã được thực thi."
trở lại
}
report_uptime () {
echo "Hàm report_uptime đã được thực thi."
trở lại
}
report_disk_space () {
echo "Hàm report_disk_space đã được thực thi."
trở lại
}
report_home_space () {
echo "Hàm report_home_space đã được thực thi."
trở lại
}
và chạy lại tập lệnh:
[tôi @ linuxbox ~] $ sys_info_page
Báo cáo thông tin hệ thống cho linuxbox
Báo cáo thông tin hệ thống cho linuxbox
Được tạo vào ngày 03/20/2009 05:17:26 AM EDT, bởi tôi Chức năng report_uptime được thực thi.
Hàm report_disk_space được thực thi. Hàm report_home_space được thực thi.
[tôi @ linuxbox ~] $ sys_info_page
Báo cáo thông tin hệ thống cho linuxbox
Báo cáo thông tin hệ thống cho linuxbox
Được tạo vào ngày 03/20/2009 05:17:26 AM EDT, bởi tôi Chức năng report_uptime được thực thi.
Hàm report_disk_space được thực thi. Hàm report_home_space được thực thi.
Tiếp tục chạy tập lệnh
Trên thực tế, bây giờ chúng ta thấy rằng ba chức năng của chúng ta đang được thực thi.
Với khung chức năng của chúng tôi đã sẵn sàng và đang hoạt động, đã đến lúc bổ sung thêm một số mã chức năng. Đầu tiên report_uptime chức năng:
report_uptime () {
con mèo << - _EOF_
Thời gian hoạt động hệ thống
$(thời gian hoạt động)
_EOF_
trở lại
}
report_uptime () {
con mèo << - _EOF_
Thời gian hoạt động hệ thống
$(thời gian hoạt động)
_EOF_
trở lại
}
Nó khá đơn giản. Chúng tôi sử dụng tài liệu ở đây để xuất ra tiêu đề của phần và đầu ra của thời gian hoạt động lệnh, bao quanh bởi thẻ để giữ nguyên định dạng của lệnh. Các report_disk_space chức năng tương tự:
report_disk_space () {
con mèo << - _EOF_
Sử dụng không gian đĩa
$(df -h)
_EOF_
trở lại
}
report_disk_space () {
con mèo << - _EOF_
Sử dụng không gian đĩa
$(df -h)
_EOF_
trở lại
}
Hàm này sử dụng df-h lệnh để xác định dung lượng ổ đĩa. Cuối cùng, chúng ta sẽ xây dựng report_home_space chức năng:
report_home_space () {
con mèo << - _EOF_
Sử dụng không gian nhà
$ (du -sh / home / *)
_EOF_
trở lại
}
report_home_space () {
con mèo << - _EOF_
Sử dụng không gian nhà
$ (du -sh / home / *)
_EOF_
trở lại
}
Chúng tôi sử dụng du lệnh với -NS tùy chọn để thực hiện nhiệm vụ này. Tuy nhiên, đây không phải là giải pháp hoàn chỉnh cho vấn đề. Mặc dù nó sẽ hoạt động trên một số hệ thống (chẳng hạn như Ubuntu), nhưng nó sẽ không hoạt động trên các hệ thống khác. Lý do là nhiều hệ thống đặt quyền cho các thư mục chính để ngăn không cho chúng có thể đọc được trên thế giới, đây là một biện pháp bảo mật hợp lý. Trên các hệ thống này, report_home_space chức năng, như đã viết, sẽ
chỉ hoạt động nếu tập lệnh của chúng tôi được chạy với đặc quyền siêu người dùng. Một giải pháp tốt hơn là yêu cầu tập lệnh điều chỉnh hành vi của nó theo đặc quyền của người dùng. Chúng ta sẽ đề cập đến vấn đề này trong chương tiếp theo.
Các hàm Shell trong tệp .bashrc của bạn
Các hàm shell tạo ra sự thay thế tuyệt vời cho các bí danh và thực sự là phương pháp được ưa thích để tạo các lệnh nhỏ cho mục đích sử dụng cá nhân. Các bí danh rất hạn chế về loại lệnh và tính năng shell mà chúng hỗ trợ, trong khi các hàm shell cho phép mọi thứ có thể được viết theo kịch bản. Ví dụ, nếu chúng ta thích report_disk_space shell mà chúng tôi đã phát triển cho tập lệnh của mình, chúng tôi có thể tạo một hàm tương tự có tên ds cho chúng ta .bashrc tập tin:
ds () {
echo “Sử dụng dung lượng ổ đĩa cho $HOSTNAME” df -h
}
<Trước | Nội dung | Tiếp theo>