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

Lập trình shell trên opensuse

73 8 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 73
Dung lượng 1,89 MB

Nội dung

Khóa luận tốt nghiệp Lập trình Shell OpenSUSE Li mở đầu Có lẽ bạn quen với hệ điều hành Windows quen lập trình hệ điều hành Windows nói HĐH "hoàn hảo", dễ sử dụng, với nhiều tiện ích đáp ứng gần yêu cầu người dùng Vậy lại phải tìm đến HĐH Linux ? Trong bối cảnh kinh tế giới có xu hướng tồn cầu hóa vấn đề cộm Ở Việt Nam, vấn đề vi phạm quyền phần mềm phổ biến (nước ta dẫn đầu giới số lượng phần mềm dùng khơng có quyền) Theo tổ chức BSA&IDC xếp thứ 10/108 nước vi phạm quyền CNTT, năm 2007 đứng thứ 11 vừa khỏi nước có tỷ lệ vi phạm quyền CNTT nhiều năm 2005 Trước tình hình đó, việc tự xây dựng cho phần mềm thương hiệu Việt Nam trở nên vấn đề cấp bách Phần mềm mã nguồn mở xem giải pháp hữu hiệu cho toán quyền nước ta Phần mềm mã nguồn mở mặt có chi phí rẻ so với phần mềm truyền thống, mặt khác dễ nâng cấp, cải tiến (do cung cấp mã nguồn kèm theo) Đặc biệt tính ổn định hệ thống, tính đa nhiệm đa người dùng Chính thế, phát triển phần mềm mã nguồn mở tận dụng cơng nghệ tiên tiến có sẵn giới, cải tiến cho phù hợp với người Việt Nam, tiết kiệm nhiều công sức so với việc phát triển từ đầu Linux HĐH mã nguồn mở vậy! Ngoài ra, Linux lại có độ an tồn cao, thích hợp cho quản trị mạng, chạy thống hệ thống phần cứng, tích hợp nhiều phần mềm tiện ích,… Tuy nhiên với người quen sử dụng Windows việc tiếp xúc với hệ điều hành không khỏi bỡ ngỡ, khó khăn, giao diện “Command Line” Vì thế, mục tiêu đề tài tơi giới thiệu cách khái quát hệ điều hành Linux, cụ thể qua phiên OpenSUSE có khả hỗ trợ tốt cho máy chủ giới thiệu lập trình Shell Linux để người u thích lập trình có nhìn Bố cục khóa luận sau: Chương I: Tổng quan hệ điều hành Linux Chương II: OpenSUSE Chương III: Lập trình Shell SV thùc hiƯn: Ngun ThÞ Ngäc Tróc - Lớp 46A Khoa CNTT Khãa ln tèt nghiƯp LËp tr×nh Shell trªn OpenSUSE Chương I Hệ điều hành Unix, Linux I Lịch sử phát triển Unix, Linux Unix Vào năm 70 kỷ này, giới chứng kiến trào lưu phát triển rực rỡ tin học xung quanh HĐH UNIX Trong khoảng thời gian đó, tồn trường đại học giới, khắp nơi nở rộ phong trào học, nghiên cứu phát triển HĐH UNIX Vì UNIX có mặt khắp nơi vậy? Vì UNIX HĐH miễn phí với mã nguồn mở thời gian Có thể nói phát triển HĐH UNIX gắn liền với phát triển khoa học CNTT suốt năm 70 kéo dài tận ngày hôm Hệ thống mạng máy tính phát triển nhanh năm 70 với mạng riêng cho UNIX USENET, CSNET, BITNET, EARN, NSFNET nhiều mạng khác xuất quy mơ tồn cầu, liên kết giới UNIX thành hệ thống thống Sau máy PC đời đặc biệt hệ điều hành cho PC phát triển rầm rộ người ta cảm thấy xuống phong trào UNIX hóa nói Cảm tưởng UNIX lép vế bắt đầu xuống nhường chỗ cho hệ điều hành PC lên DOS, OS/2, Netware, Windows NT, Thế giới UNIX xưa máy tính lớn trường đại học Tuy nhiên phong trào “UNIX” lại nở rộ lần thứ 2, lần xuất cách hơn, nhanh hơn, liệt hơn, LINUX tung lần vào năm 1991 Linus Torvalds Thế giới UNIX ngày hôm với LINUX làm trung tâm chứng kiến phát triển nhanh lịch sử phát triển phần mềm nói chung hệ điều hành nói riêng Hàng chục triệu chuyên gia lập trình, người khơng cần có chun mơn tin học, hàng triệu website toàn giới tham gia vào phong trào “Linux hóa” có quy mơ tốc độ phát triển chóng mặt tồn giới Chưa đội ngũ người lập trình phát triển hệ điều hành LINUX lại mạnh, đồn kết, trí đông đảo Giai đoạn phát triển thứ hai UNIX, gọi LINUX/GNU toàn giới quan tâm Sự quan tâm khơng dừng lại phía nhà lập trình, cơng ty tin học mà phủ quốc gia trận Một loạt SV thùc hiÖn: Ngun ThÞ Ngäc Tróc - Lớp 46A Khoa CNTT Khóa luận tốt nghiệp Lập trình Shell OpenSUSE cỏc quốc gia thức tham gia phong trào nhằm phát triển HĐH riêng cho quốc gia Linux Linux HĐH đa người dùng, nghĩa nhiều người đăng nhập lúc sử dụng hệ thống Mặc dù ưu điểm không bật máy PC nhà, song công ty trường đại học, nhiều người lúc sử dùng chung tài ngun, từ giảm chi phí đầu tư cho máy móc Ngay gia đình, vào hệ thống nhiều account khác qua đầu cuối ảo (virtual terminal ) Cũng từ môi trường gia đình, bạn tự tổ chức dịch vụ mạng riêng cách sử dụng Linux nhiều modem Linux cung cấp cho hội học tập mà chưa có hệ điều hành sánh Có Linux, ta có hệ điều hành đầy đủ bao gồm mã nguồn Trong hệ điều hành thương mại khác không tiết lộ mã nguồn Năm 1991, Linus Torvalds, sinh viên trường đại học tổng hợp Helsinki Phần Lan bắt đầu xem xét Minix, phiên UNIX làm với mục đích nghiên cứu cách tạo hệ điều hành UNIX chạy PC với vi sử lý Intel 80386 Ngày 25/8/1991, Linus cho version 0.01 thông báo comp.os.minix dự định Linux Tháng 1/1992, Linus cho phiên với shell trình biên dịch C Linux không cần minix để phiên dịch lại hệ điều hành mình, Linus đặt tên hệ điều hành Linux Năm 1994, phiên thức 1.0 phát hành Linux hệ điều hành dạng UNIX chạy máy PC với điều khiển trung tâm Intel 80386 trở lên, hay vi xử lý trung tâm tương thích AMD, Cyrix Linux ngày chạy máy Macintosh SUN Space Linux thoả mãn chuẩn POSIX.1 Linux viết tồn từ số khơng, tức khơng sử dụng dòng lệnh UNIX, nhiên hoạt động Linux hoàn toàn dựa nguyên tắc điều hành UNIX Vì người nắm UNIX nắm Linux Linux hệ điều hành phát hành miễn phí, phát triển mạng Internet, tựa UNIX sử dụng máy tính cá nhân Linux phát triển nhanh chóng trở lên phổ biến thời gian ngắn Nó nhanh chóng nhiều người sử dụng SV thùc hiƯn: Ngun ThÞ Ngäc Tróc - Lớp 46A Khoa CNTT Khãa luËn tèt nghiệp Lập trình Shell OpenSUSE nhng lý khụng phải trả tiền quyền, người dễ dàng download từ Internet hay mua hiệu bán CD Linux hệ điều hành có hệ cao, tất máy tính có cấu hình cao hay thấp Hệ điều hành hỗ trợ máy tính sử dụng 32 64 bit nhiều phần mềm khác Quá trình phát triển Linux tăng tốc qua phát triển chương trình GNU Đó chương trình phát triển UNIX có khả chạy nhiều tảng khác Đến cuối năm 2001 phiên Linux kernel 2.4.2-2 có khả điều khiển máy đa vi xử lý nhiều tính khác II Một số khái niệm Nhân Linux (Kernel) Nhân (còn gọi hệ lõi) Linux, hệ modun chương trình có vai trị điều khiển thành phần máy tính, phân phối tài nguyên cho người dùng Nhân cầu nối chương trình ứng dụng phần cứng Người dùng sử dụng bàn phím gõ nội dung yêu cầu u cầu nhân gửi tới Shell; Shell phân tích lệnh gọi chương trình tương ứng với lệnh để thực Nó cung cấp chức để hệ điều hành hoạt động quản lý nhớ, quản lý file, quản lý thiết bị nhập/xuất Nhân Linux gồm hệ thống nhỏ: 1/ Bộ phân thời cho tiến trình (Process Scheduler-SCHED) Cơ PC hệ thống xử lý đơn tức có lệnh thực thi thời điểm Tuy nhiên hệ điều hành đa nhiệm (multi-task) Windows, Linux,… cho phép nhiều chương trình chạy lúc Bằng cách chuyển quyền thực thi qua lại chương trình thật nhanh làm cho có cảm giác chương trình chạy lúc với Ví dụ bạn vừa gõ văn OpenOffice vừa nghe nhạc Amarok thật SCHED chạy OpenOffice 5,10 lệnh xong chuyển qua Amarok 5,10 lệnh chuyển lại Việc nhanh nên bạn khơng có cảm giác 2/ Bộ quản lý nhớ (Memory Manager-MM) Bộ nhớ qui ước (conventional memory) PC có 640KB Do chương trình BIOS quản lý tới FFFFF, mà vùng nhớ cao (từ A0000 trở lên) dùng SV thùc hiƯn: Ngun ThÞ Ngäc Tróc - Lớp 46A Khoa CNTT Khãa ln tèt nghiƯp LËp tr×nh Shell trªn OpenSUSE để ánh xạ BIOS, video card memory thiết bị ngoại vi khác, vùng nhớ thấp từ 9FFFF trở xuống Ở chế độ bảo vệ CPU 32bít đưa khái niệm nhớ ảo (virtual memory) Lúc tiến trình cấp cho 4GB nhớ ảo từ 00000000-FFFFFFFF Nhưng nhân giữ bảng mô tả ánh xạ trang nhớ ảo với nhớ vật lý Bộ nhớ vật lý bao gồm RAM swap disk space Tất nhiên 4GB nhớ ảo không ánh xạ hết (4GB dùng chung cho tất tất tiến trình) Phần lớn có đánh địa chỉ, đọc ghi lên nhân định vị từ nhớ vật lý 3/ Hệ thống file ảo (Virtual File System – VFS) Hệ thống tệp không cung cấp truy xuất đến hệ thống file đĩa cứng mà cho tất thiết bị ngoại vi Ý tưởng bắt nguồn từ Unix hệ điều hành sau điều thiết lập theo hướng Trong DOS dùng copy xxx để in file xxx hình Khi “con “ filehandler cho thiết bị xuất chuẩn (console) 4/ Giao diện mạng (Network Interface-NET) Linux xây dựng sẵn TCP/IP nhân Vì Linux dễ dàng kết nối hệ thống khác qua mạng truy xuất mà khơng quan tâm đến thiết bị giao thức sử dụng 5/ Bộ truyền thông nội (Inter-process communication IPC) Cung cấp phương tiện truyền thơng tiến trình hệ thống Linux Vỏ Linux (Shell) Mọi thứ thực Linux tiến trình Vậy tạo tiến trình nào.Cách thứ viết chương trình mà chương trình biết cách tạo tiến trình Cũng hệ điều hành khác, Unix hỗ trợ phương tiện xử lý lệnh làm giao diện lệnh máy (mà người dùng đưa vào) việc thực thi lệnh (bởi Unix) Phương tiện gọi Shell Từ đời, Unix có vài kiểu Shell, Bourne, C, Korn shell Thực shell làm gì? Tồn mục đích shell để khởi động tiến trình xử lý lệnh đưa vào: Yêu cầu đưa (dòng) lệnh vào, đọc đầu vào, thơng dịch dịng lệnh đó, tạo tiến trình để thực lệnh Nói cách khác Shell qt dịng lệnh đưa vào máy tính, cấu hình mơi trường thực thi tạo tiến trình để thực lệnh SV thùc hiƯn: Ngun ThÞ Ngäc Tróc - Lớp 46A Khoa CNTT Khãa luËn tèt nghiệp Lập trình Shell OpenSUSE Hỡnh 1: V trớ Shell “thực hiện” lệnh người dùng Shell dịch lệnh nhập vào thành lời gọi hệ thống, chuyển ký tự dẫn hướng >, >> hay | thành liệu di chuyển lệnh Đọc biến mơi trường để tìm thơng tin thực thi lệnh Như vậy, tìm hiểu Shell thực tế học ngơn ngữ lập trình, cho dù khơng phức tạp C, hay số ngôn ngữ khác, phải trải qua đòi hỏi cần thiết Trong Unix/Linux có loại Shell khác lựa chọn để dùng theo nhu cầu mà người dùng thấy phù hợp Hình mơ tả tương tác Shell, chương trình ứng dụng, hệ X- window nhân Linux/Unix tách biệt ứng dụng, lệnh gọi hàm chức nhân thành đơn thể nhỏ (tiến trình) Tuy nhiên, nhiều lệnh Linux kết hợp lại với để tạo nên chức tổng hợp mạnh mẽ Ví dụ: $ ls –al | more lệnh kết hợp hai lệnh, ls liệt kê toàn danh sách tệp thư mục đĩa hình, danh sách dài, ls chuyển liệu kết xuất cho lệnh more xử lý thị kết thành trang hình Linux có cách kết hợp liệu kết xuất lệnh với thông qua chế chuyển tiếp (redirect) ống dẫn (pipe) Kết hợp lệnh với dịng lệnh khơng chưa đủ Nếu muốn nhiều lệnh thực đồng thời với tùy vào điều kiện, kết xuất lệnh mà có ứng xử thích hợp Lúc dùng đến cấu trúc rẽ nhánh if, case Trường hợp bạn muốn thực thao tác vịng lặp, phải dùng SV thùc hiƯn: Ngun ThÞ Ngäc Tróc - Lớp 46A Khoa CNTT Khãa luận tốt nghiệp Lập trình Shell OpenSUSE lnh nh for, while Shell trình diễn dịch cung cấp cho người dùng khả Hầu hết Shell Unix/Linux sử dụng ngôn ngữ gần giống với C Hệ thống cung cấp cho người dùng nhiều chương trình Shell Mỗi shell có số tiện ích hỗ trợ chế độ gõ phím, ghi nhớ lệnh Kết hợp tiện ích shell để tạo chương trình chạy được, chương trình lưu dạng tệp, gọi tệp kịch (script) Viết tệp Script thực chất lập trình theo Shell Các Shell Unix/Linux: Sh (Bourne) shell nguyên thủy áp dụng cho Unix Csh, tcsh zsh dòng shell sử dụng cấu trúc lệnh C làm ngôn ngữ kịch Được tạo Boy Joy Là shell thông dụng thứ hai sau bash shell Bash Shell chủ yếu Linux Ra đời từ dự án GNU bash (viết tắt Bourne Again Shell) có lợi điểm mã nguồn cơng bố rỗng rãi rc Shell mở rộng csh với nhiều tương thích ngơn ngữ C rc đời từ dự án GNU Shell chuẩn thường nhà phân phối Linux sử dụng bash Khi cài đặt Linux, trình cài đặt thường mặc định bash shell khởi động Có thể tìm thấy chương trình Shell thư mục /bin với tên chương trình bash bash đơi chương trình nhị phân đơi script gọi đến chương trình nhị phân khác Có thể dùng lệnh file để xem bash tập tin nhị phân hay script sau: $ file/ bin/ bash / bin/bash: ELF 32 –bit LSB executable Intel 80386 kết kết xuất dạng ELF (Executable and Linking Format) có nghĩa bash chương trình nhị phân Tuy bash shell sử dụng phổ biến Linux, ví dụ lập trình sử dụng ngơn ngữ lệnh shell sh sh shell nguyên thủy, chạy Unix Bằng lệnh file ta thấy hầu hết Linux sh liên kết đến bash mà thơi Ví dụ: SV thùc hiƯn: Ngun ThÞ Ngäc Tróc - Lớp 46A Khoa CNTT Khãa luËn tèt nghiÖp Lập trình Shell OpenSUSE $ file/ bin/ sh / bin/sh: symbolic link to bash điều có nghĩa bash hồn tồn diễn dịch điều khiển lệnh shell sh Tiến trình * Định nghĩa tiến trình: Tiến trình (process) chương trình đơn chạy khơng gian địa ảo Cần phân biệt tiến trình với lệnh dịng lệnh shell sinh nhiều tiến trình Ví dụ: dịng lệnh sau nnroff -man ps.1 grep kill | more user sinh tiến trình khác Các loại tiến trình Linux - Tiến trình với đối thoại (Interactive processes) : tiến trình khởi động quản lý shell, kể tiến trình foreground background - Tiến trình batch (Batch processes) : Tiến trình khơng gắn liền đến bàn điều khiển (terminal) nằm hàng đợi để thực - Tiến trình ẩn nhớ - (Daemon process) Là tiến trình chạy Đa số chương trình server cho dịch vụ chạy theo phương thức Đây chương trình sau gọi lên nhớ, đợi thụ động yêu cầu chương trình khách (client) để trả lời sau cổng xác định (cổng khái niệm gắn liền với giao thức TCP/IP BSD socket) Hầu hết dịch vụ Internet mail, Web, DNS … chạy theo nguyên tắc Các chương trình gọi chương trình daemon tên thường kết thúc ký tự “d” named, inted 3.1 Kiểm tra tiến trình Cách đơn giản để kiểm tra hệ thống tiến trình chạy sử dụng lệnh ps (process status) Lệnh ps có nhiều tùy chọn phụ thuộc cách mặc định vào người login vào hệ thống $ ps PID TTY STAT TIME COMMAND 41 v01 S 0:00 -bash 134 v01 R 0:00 ps * Lệnh ps : Để hiển thị tất process, ta sử dụng lệnh ps –a Một người sử dụng hệ thống bình thường thấy tất tiến trình, SV thùc hiƯn: Ngun ThÞ Ngäc Tróc - Lớp 46A Khoa CNTT Khãa luận tốt nghiệp Lập trình Shell OpenSUSE iu khin tiến trình tạo Chỉ có superuser có quyền điều khiển tất tiến trình hệ thống Linux người khác Lệnh ps –ax cho phép hiển thị tất tiến trình, tiến trình khơng gắn liền đến có bàn điều khiển (tty – teletypewriter) Chúng ta coi tiến trình chạy với dịng lệnh đầy đủ để khởi động tiến trình ps –axl 3.2 Dừng tiến trình- kill Trong nhiều trường hợp, tiến trình bị treo, chương trình server cần nhận cấu hình mới, card mạng cần thay đổi địa IP, phải dừng tiến trình có vấn đề Linux có lệnh kill để thực công việc Trước tiên bạn cần phải biết PID (Process Identifier - số hiệu tiến trình) tiến trình cần dừng thơng qua lệnh ps Chỉ có super-user có quyền dừng tất tiến trình, cịn user dừng tiến trình * Lệnh kill : kill -9 PID_của_ tiến_trình : Tham số –9 gửi tín hiệu dừng khơng điều kiện chương trình Chú ý bạn đăng nhập vào hệ thống root, nhập số PID xác khơng bạn dừng tiến trình khác Một tiến trình sinh tiến trình trình hoạt động Nếu dừng tiến trình cha, tiến trình dừng theo, khơng tức Vì phải đợi khoảng thời gian sau kiểm tra lại xem tất tiến trình có dừng hay khơng Trong số hữu hạn trường hợp, tiến trình có lỗi nặng khơng dừng được, phương pháp cuối khởi động lại máy 3.3 Hoạt động tiến trình * Lệnh Top : Hiển thị hoạt động tiến trình, đặc biệt thông tin tài nguyên hệ thống việc sử dụng tài nguyên tiến trình Với lệnh đơn giản top, ta có top -14:44:52 up 3:12, user, load average: 0.11, 0.18, 0.26 Tasks: 111 total, running, 108 sleeping, stopped, zombile Cpu(s): 0.3%us, 0.3%sy, 0.0%ni, 99.4%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 907064k total, 623316k used, 283748k free, 39580k buffers Swap: 2097140k total 0k used, 2097140k free, 419188k cached Số % máy rảnh (id - viết tắt idle) in đậm quan trọng Một máy rảnh 50% máy tải cần xem xét Lệnh top cho phép theo dõi xem SV thùc hiƯn: Ngun ThÞ Ngäc Tróc - Lớp 46A Khoa CNTT Khóa luận tốt nghiệp Lập trình Shell OpenSUSE có tiến trình chiếm q nhiều thời gian CPU truy cập ổ đĩa Ngoài ra, số lệnh khác vmstat mpstat, sar, iostat cho phép xem xét với mục đích khác hoạt động máy chủ SV thùc hiƯn: Ngun ThÞ Ngäc Tróc - Lớp 46A Khoa CNTT 10 Khãa luËn tèt nghiệp vớ d: Lập trình Shell OpenSUSE expr length "This is normal Text" 20 - expr index STRING CHARS : trả số ( vị trí ) ký tự xâu tìm thấy, ngược lại trả 0.(lưu ý chars chuỗi lệnh thực với ký tự đầu tiên) Ví dụ: expr index “Nguyen, Thi, Ngoc, Truc” “T” 10 - expr substr STRING POS LENGTH : Trả chuỗi STRING, vị trí POS, độ dài chuỗi LENGTH, tương đương lệnh copy Pascal Ví dụ: expr substr “Nguyen Thi Ngoc Truc” 12 Ngoc 6.9 Printf Lệnh Printf shell tương tự lệnh Printf thư viện C Nó dùng để in giá trị hình Tuy lệnh Prìntf shell có hạn chế khơng hỗ trợ định dạng số có dấu chấm động (float) tất số tính tốn dựa số nguyên Các ký tự đặc biệt dùng với dấu \, gọi chuỗi thoát Chuỗi thoát (escape sequene) Ý nghĩa \\ Cho phép hiển thị ký tự \ chuỗi \a Phát tiếng chng (beep) \b Xóa backspace \f Đẩy dòng \n Sang dòng \r Về đầu dòng \t tab ngang \v Căn tab dọc \ooo Ký tự đơn với mã ooo Định dạng số chuỗi ký tự % bao gồm SV thùc hiÖn: Ngun ThÞ Ngäc Tróc - Lớp 46A Khoa CNTT 59 Khãa ln tèt nghiƯp Ký tự định dạng LËp tr×nh Shell trªn OpenSUSE Ý nghĩa d Số nguyên c Ký tự s Chuỗi % Hiện thị ký tự % Một số ví dụ printf $printf “My name is %s It is nice to meet you \n” Nguyen Ngoc Truc My name is Nguyen Ngoc Truc It is nice to meet you $printf “%s %d\t %s” “Hi There” “15” “people” Hi There 15 people 6.10 Return Lệnh return dùng để trả giá trị hàm Lệnh Return không tham số trả mã lỗi lệnh vừa thực sau 6.11 Set Lệnh set dùng để áp đặt giá trị cho tham số môi trường $1,$2, $3 Lệnh set loại bỏ khoảng trắng không cần thiết đặt nội dung chuỗi truyền cho theo biến tham số Ví dụ $set this is parameter $echo $1 This $echo $3 parameter Ví dụ: Muốn lấy ngày, tháng năm chuỗi set.sh #! bin/ sh echo Ngay hien tai la ${date} set ${date} echo The month is $2 SV thùc hiÖn: Ngun ThÞ Ngäc Tróc - Lớp 46A Khoa CNTT 60 Khóa luận tốt nghiệp Lập trình Shell OpenSUSE echo The year is $6 exit Kết kết xuất: $./set.sh Ngay hien tai la Fri April 13 02:06:10 EST 2009 The month is April The year is 2009 6.12 Shift Lệnh Shift di chuyển nội dung tất tham số mơi trường $1,$2 xuống vị trí Chỉ có tối đa tham số từ $1.$2 $9, lệnh Shift giải shell cần nhận từ 10 tham số trở lên Ví dụ: shift.sh #! bin/sh while [“$1”!= “”] echo “$1” shift done exit Kết kết xuất $./shift.sh here is a long parameter with here is a long parameter SV thùc hiƯn: Ngun ThÞ Ngäc Tróc - Lớp 46A Khoa CNTT 61 Khãa luËn tốt nghiệp Lập trình Shell OpenSUSE 6.13 Unset Lnh unset dùng để loại bỏ biến khỏi môi trường shell Ví dụ: #! bin/ sh foo = “Hello World” echo $foo unset foo echo $foo Đầu tiên echo in chuỗi Hello World, sau lệnh unset echo in chuỗi rỗng Lý do, biến foo không tồn Có thể gán chuỗi rỗng cho foo theo cách foo = Tuy nhiên foo rỗng foo loại khỏi môi trường khác Đối với Linux unset thường không sử dụng III Lập trình ứng dụng Shell Bài tốn: Nhập mảng số nguyên, in mảng đó, xuất menu gồm mục Xóa phần tử theo vị trí bắt đầu Xóa phần tử theo giá trị Sắp xếp mảng tăng dần Sắp xếp mảng giảm dần Tính tổng phần tử mảng Thốt khỏi chương trình Nếu chọn giá trị khác 1-6 đưa thơng báo chọn lại giá trị từ đến Trước vào xây dựng toán phải có hàm sau: nhapmang() xuatmang() xoavitri() xoagiatri() sapxeptang() SV thùc hiƯn: Ngun ThÞ Ngäc Tróc - Lớp 46A Khoa CNTT 62 Khóa luận tốt nghiệp Lập trình Shell OpenSUSE sapxepgiam() tinhtong() Ta có chương trình sau đây: #!/bin/sh nhapmang() { echo " Nhap gia tri cac phan tu cua mang" for((i=0;i

Ngày đăng: 21/10/2021, 23:11

TỪ KHÓA LIÊN QUAN

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w