1. Trang chủ
  2. » Luận Văn - Báo Cáo

Chủ đề LẬP TRÌNH SHELL

28 468 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 28
Dung lượng 2,54 MB

Nội dung

Cách lặp trình shell trong fedora Ta có thể lập trình trực tiếp trên terminal trong fedora  Và các lệnh sẽ được ngăn cách với nhau bằng dấu phẩy ,  Tuy nhiên cách làm này dễ gây

Trang 2

Nguyễn Tuấn Anh

Trần Huỳnh Bảo Tiên

Võ Thị Thùy Dung

GIỚI THIỆU NHÓM

Trang 3

1 Cách lập trình shell trên fedora

Trang 4

1 Cách lặp trình shell trong fedora

 Ta có thể lập trình trực tiếp trên

terminal trong fedora

 Và các lệnh sẽ được ngăn cách với

nhau bằng dấu phẩy ( , )

 Tuy nhiên cách làm này dễ gây khó

khăn cho việc lập trình 1 đoạn code dài

hay phức tạp.

 Ta có thể lập trình trực tiếp trên

terminal trong fedora

 Và các lệnh sẽ được ngăn cách với

nhau bằng dấu phẩy ( , )

 Tuy nhiên cách làm này dễ gây khó

khăn cho việc lập trình 1 đoạn code dài

hay phức tạp.

Vì vậy, ta có thể lập trình trên các

emacs ,… Ở đây, ta sẽ được hướng dẫn phương pháp lập trình shell trên vi.

Trang 5

c 1 Bướ

c 1

• Khở

i đ ộng vi v

ới t erm ina

l b ằng c

âu l ệnh

$

vi <t ên ch ươ

ng t rìn h>

( thư ờng s

ẽ đ

ặt t

ên chư ơng trì

nh phù hợp v

h c

ho d

ễ n

hớ )

• Sau khi c

ửa

sổ

vi hi

ện lên t

hì bấ

m p hím

a đ

ể thự

c h iện việ

c s oạn t hảo.

• Khở

i đ ộng vi v

ới t erm ina

l b ằng c

âu l ệnh

$

vi <t ên ch ươ

ng t rìn h>

( thư ờng s

ẽ đ

ặt t

ên chư ơng trì

nh phù hợp v

h c

ho d

ễ n

hớ )

• Sau khi c

ửa

sổ

vi hi

ện lên t

hì bấ

m p hím

a đ

ể thự

c h iện việ

c s oạn t hảo.

Bướ

c 2 Bướ

c 2

• Thự

c hi

ện vi

ệc l

ập trì

nh t ron

ết t húc v iệc lập trì

nh bấ

m p hím

vi ho

ặc double c

lic

k vào tha

nh trạ

ng thá

i gõ lệnh

:q uit

sau

đó

EN TE R.

• Sau khi k

ết t húc v iệc lập trì

nh bấ

m p hím

vi ho

ặc double c

lic

k vào tha

nh trạ

ng thá

i gõ lệnh

:q uit

sau

đó

EN TE R.

Bướ

c 4 Bướ

c 4

• Dùn

g te rm ina

l gọ

i c hươn

g trì

nh v

ừa đ ược lập trì

ng t rìn h> rìn ng t ươ ch ên ash <t p $b ú phá g c nh bằn trì lập ược ừa đ nh v g trì hươn i c l gọ ina rm g te Dùn •

h>.

Các bước lập trình shell trên vi

Trang 6

B1: Khởi động vi với terminal bằng câu lệnh $ vi <tên chương trình> ( thường sẽ đặt tên chương trình phù hợp với nội dung sẽ lập

trình cho dễ nhớ )

Sau khi cửa sổ vi hiện lên thì bấm phím a để thực hiện việc soạn thảo.

Trang 9

B2: Thực hiện việc lập trình trong vi.

Trang 10

B3: Sau khi kết thúc việc lập trình bấm phím ESC sau đó gõ ZZ ( Shift + zz )

để thoát vi hoặc double click vào thanh trạng thái gõ lệnh :quit sau đó ENTER.

B4: Dùng terminal gọi chương trình vừa được lập trình bằng cú pháp

$bash <tên chương trình>.

B3: Sau khi kết thúc việc lập trình bấm phím ESC sau đó gõ ZZ ( Shift + zz )

để thoát vi hoặc double click vào thanh trạng thái gõ lệnh :quit sau đó ENTER.

B4: Dùng terminal gọi chương trình vừa được lập trình bằng cú pháp

$bash <tên chương trình>.

Trang 12

Chú ý:

Không có khoảng trống trước và sau dấu =

Để hiển thị giá trị biến thường dùng dấu $ trước tên biến

Không có khoảng trống trước và sau dấu =

Để hiển thị giá trị biến thường dùng dấu $ trước tên biến

Ví dụ: $ count=1 $ dh=DaiHoc

Ví dụ: $ count=1 $ dh=DaiHoc

Trang 13

• Dấu slash ngược: \

Back quot e

Sin gle q uot

e uot gle q Sin e

Back slash

Dou b

le

quo t e

Dou b

le

quo t e

3 Các dấu nháy

Có 4 kí tự dấu đặc biệt:

Trang 14

3.1 Dấu nháy ngược `…`

 Thường được sử dụng để bọc một cấu trúc lệnh

 Mục đích của dấu nháy ngược là yêu cầu shell thi hành lệnh trong cặp dấu nháy ngược và chèn sddout của lệnh này vào vị trí cặp dấu nháy ngược (tương tự cách sử dụng cặp ngoặc tạo độ ưu tiên cao hơn khi tính toán)

 Thường được sử dụng để bọc một cấu trúc lệnh

 Mục đích của dấu nháy ngược là yêu cầu shell thi hành lệnh trong cặp dấu nháy ngược và chèn sddout của lệnh này vào vị trí cặp dấu nháy ngược (tương tự cách sử dụng cặp ngoặc tạo độ ưu tiên cao hơn khi tính toán)

Ví dụ:

$ echo The Date and Time is: `date`

The Date and Time is: Wed Mar 22 15: 25: 07 ICT 2000

$ echo The current directory is: `pwd`

The current directory is: /tmp/testdir/testshell

Ví dụ:

$ echo The Date and Time is: `date`

The Date and Time is: Wed Mar 22 15: 25: 07 ICT 2000

$ echo The current directory is: `pwd`

The current directory is: /tmp/testdir/testshell

Trang 15

3.2 Dấu nháy đơn ‘…’

Ta có tập tin phonebook như sau:

$ cat phonebook

Nguyen Van An 8822191

Nguyen Thanh Tam 8899111

Nguyen Hau 98233131

Tran Van Tam 7761122

Vo Van Dung 9787878

Vo An 9998899

Khi dùng lệnh grep tìm dòng có tên Hau thì: $ grep Hau phonebook Nguyen Hau 98233131

Hoặc $ grep An phonebook Nguyen van An 8822191 Vo An 9998899

Nếu ta muốn chọn chuỗi Vo An thì hệ thống báo lỗi $ grep Vo An phonebook grep: An: no such file or direetory phonebook: Vo van Dung 9787878

phonebook: Vo An 9998899

Vì theo cú pháp của lệnh grep đối số đầu tiên cho biết chuỗi ký tự cần tìm và các đối số kế tiếp là tên các tập tin được truy tìm; xem sơ đồ phân tích sẽ thấy rõ ý tưởng này Khi dùng lệnh grep tìm dòng có tên Hau thì: $ grep Hau phonebook Nguyen Hau 98233131

Hoặc $ grep An phonebook Nguyen van An 8822191 Vo An 9998899

Nếu ta muốn chọn chuỗi Vo An thì hệ thống báo lỗi $ grep Vo An phonebook grep: An: no such file or direetory phonebook: Vo van Dung 9787878

phonebook: Vo An 9998899

Vì theo cú pháp của lệnh grep đối số đầu tiên cho biết chuỗi ký tự cần tìm và các đối số kế tiếp là tên các tập tin được truy tìm; xem sơ đồ phân tích sẽ thấy

rõ ý tưởng này

Trang 16

Lúc này cặp dấu nháy đơn ‘…’ cần thiết để báo cho shell biết chuỗi ‘Vo An‘ là một đối số

$ grep ’Vo An’ phonebook

Trang 17

Tuy nhiên chú ý

$ echo ’* means all files in this directory’

* means all files in this directory

$ T=’* means all files in this directory’

$ echo $T

myfile newfile testfile Zdir means all files in this directory

Vì shell gán giá trị biến T xong thì gán tiếp giá trị tên tập tin cho dấu *.

Trang 18

Dấu slash ngược

Dấu slash ngược

Dấu nháy ngượ c

Dấu nháy ngượ c

3.3 Dấu nháy kép “…”

Dấu nháy kép hoạt động tương tự nháy đơn nhưng có vài sự khác biệt Trong dấu nháy kép có 3 ký

tự sau đây không được bỏ qua chức năng của chúng

Trang 19

* means all files in this dir

$ ADDRESS =”59C Nguyen dinh Chieu,

> Quan 3, Tp HCM”

$ echo $ADDRESS

59C Nguyen dinh Chieu, Quan 3, Tp HCM

(shell biên dịch bỏ qua ký tự xuống dòng mới [newline] trong ADDRESS vì nó xem đó là dấu phân cách đối số thông thường)

Trang 20

3.4 Dấu slash ngược \

Về mặt cơ bản dấu \ có vẽ giống như ý nghĩa cặp dấu nháy đơn ‘ ’ cho ký tự liền sau dấu \, nhưng có vài

điểm khác biệt như sau

Ví Dụ:

$ echo >

bash: syntax error near unexpected token ’>‘

(shell hiểu ký tự > ám chỉ sự định hướng dữ liệu nên thấy thiếu đối số chỉ tên tập tin)

Trang 21

4 Biểu thức tính toán trong shell

Trang 23

5.2 Cấu trúc elif

• Khi có nhiều điều kiện lồng vào nhau như hình bên trái thì shell cho phép dùng elif thay “else if”, và chỉ cần dùng một chữ fi để kết thúc tất cả các điều kiện như hình bên phải; tuy nhiên cách này sẽ tạo khó khăn khi ta cần debug chương trình.

Trang 25

Trong phần mô tả trên, lần thi hành thứ nhất giá trị word1 được gán cho biến var, lần thứ hai giá trị word2 được gán cho biến var và lần thứ n giá trị wordn được gán cho biến var

Trang 26

5.4 Vòng lặp while:

Dạng của vòng lặp while là:

• Trước tiên lệnh test–command được thực hiện và shell xem giá trị trả về của nó; nếu giá trị trả về là 0 thì các lệnh command 1 command k nằm giữa cặp từ khoá do done được thực hiện; kế đó lệnh test–command được thực hiện lại nếu giá trị trả về lại là 0 thì tập lệnh lại được thực hiện và cứ thế cho đến khi nào lệnh test–command trả vì giá trị khác 0 thì vòng lặp được chấm dứt và shell tiếp tục phần sau từ khoá done

• $ cat shwhile $ shwhile

command k done

Trang 28

Thí dụ 2: Tính giai thừa của n

Ngày đăng: 02/11/2014, 17:27

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w