Skip to content

Commit a20aff3

Browse files
authored
Create 3. Function.md
1 parent eec1d0b commit a20aff3

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed

Bash-shell/3. Function.md

+87
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# Hàm trong Shell
2+
3+
Các **hàm** cho phép tinh giản một tính năng tổng thể của một script vào một phần nhỏ và logic hơn mà có thể thực hiện cùng một chức năng bất cứ khi nào nó được cần thông qua việc gọi hàm.
4+
5+
Sử dụng các hàm để thực hiện các công việc mang tính lặp là một cách thông minh để tạo tính sử dụng lại được của code. Tính sử dụng lại của code là một phần quan trọng của các quy tắc chương trình hướng đối tượng hiện đại.
6+
7+
Các hàm Shell là tương tự như các chương trình con, phương thức và các hàm của các chương trình khác.
8+
9+
10+
## 1. Tạo hàm
11+
12+
Để khởi tạo một hàm , ta có cấu trúc
13+
```
14+
function_name () {
15+
list of commands
16+
}
17+
```
18+
## 2. Gọi hàm
19+
20+
Sau khi hoàn thành việc khai báo hàm, mỗi khi cần sử dụng đến hàm, ta gọi chúng như sau:
21+
22+
- Đối với các hàm không có đối số
23+
24+
$ function_name
25+
26+
- Đối với các hàm có đối số, ta thêm danh sách các đối số phía sau tên hàm như sau:
27+
28+
$ function_name _arg1 arg2_
29+
30+
với arg1, arg2_ là tên của các đối số.
31+
32+
3. Lấy giá trị đối số truyền vào hàm
33+
34+
Sau khi gọi hàm kèm các đối số, ta có thấy lấy các giá trị đối số trong hàm như sau
35+
36+
37+
- $0 => tên của kịch bản
38+
- $1 => Đối số thứ 1
39+
- $2 => Đối số thứ 2
40+
- $n => Đối số thứ n
41+
- “$@” => Danh sách tất cả các đối số được truyền vào.
42+
- “$*” => In ra danh sách tất cả các đối số truyền vào dưới dạng 1 chuỗi
43+
44+
Ví dụ
45+
46+
```
47+
#!/bib/bash
48+
function tinh_tong() {
49+
echo `expr $1 + $2`
50+
}
51+
tinh_tong 10 20
52+
53+
```
54+
55+
Kết quả :
56+
57+
```
58+
[root]bash tong.sh
59+
30
60+
```
61+
62+
63+
### 3. Return trong hàm
64+
65+
Dựa vào tình huống thì hàm có thể trả về một giá trị nào đó từ hàm bằng lệnh `return`
66+
67+
### 4. Hàm lồng nhau
68+
69+
Một hàm có thể là hàm con của một hàm khác. Hàm tự gọi chính nói là hàm đệ quy
70+
71+
### 5. Biến trong hàm
72+
73+
Có 2 loại biến trong hàm
74+
- Global
75+
- Local
76+
77+
78+
1. Biến `global` được hiển thị và hợp lệ ở bất kỳ đâu trong tập một shell program. Có thể gọi giá trị biến khi ở ngoài hàm
79+
```
80+
input=`name`
81+
```
82+
83+
2. Biến `local` chỉ sử dụng biến bên trong hàm, bạn có thể khai báo biến này dưới dạng biến cục bộ bằng cách sử dụng từ khóa cục bộ như sau:
84+
```
85+
local truong='vnu'
86+
87+
```

0 commit comments

Comments
 (0)