Thứ Sáu, 28 tháng 7, 2023

Lệnh If else trong Shell Script

Trong bài này chúng ta sẽ tìm hiểu đến lệnh if else, đây là lệnh rẻ nhánh chương trình và được sử dụng rất thường xuyên khi lập trình shell script. Ngoài lệnh if else ra ta còn có lệnh case, nhưng chúng ta sẽ tìm hiểu nó ở bài tiếp theo.

Mục lục

  • 1. Lệnh if then fi
  • 2. Lệnh if else fi
  • 3. Lệnh if elif fi
  • 4. Lời kết

1. Lệnh if then fi

Trong shell cú pháp hơi dài dòng, tựa như pascal vậy :3 nếu bạn từng sử dụng PHP hay C/C++ thì sẽ thấy cú pháp rất đơn giản, nhưng qua shell script thì sẽ hơi khó nhớ.

Cú pháp
1
2
3
4
if [ expression ]
then
   # Thực hiện lệnh nếu expression true
fi

Bài viết này được đăng tại [Trong bài này chúng ta sẽ tìm hiểu đến lệnh if else, đây là lệnh rẻ nhánh chương trình và được sử dụng rất thường xuyên khi lập trình shell script. Ngoài lệnh if else ra ta còn có lệnh case, nhưng chúng ta sẽ tìm hiểu nó ở bài tiếp theo.

1. Lệnh if then fi

Trong shell cú pháp hơi dài dòng, tựa như pascal vậy :3 nếu bạn từng sử dụng PHP hay C/C++ thì sẽ thấy cú pháp rất đơn giản, nhưng qua shell script thì sẽ hơi khó nhớ.

Cú pháp
1
2
3
4
if [ expression ]
then
   # Thực hiện lệnh nếu expression true
fi

Bài viết này được đăng tại [free tuts .net]

Shell sẽ kiểm tra điều kiện đầu vào expression có giá trị true hay false, nếu true thì thực thi chương trình bên trong lệnh then, sau đó kết thúc tại lệnh fi.

Bạn cần chú ý tới khoảng trắng nhé, đó là phần bắt buộc nên phải có khoảng trắng đầy đủ, nếu không chương trình sẽ biên dịch sai hoặc bị lỗi.

Điều kiện expression có thể là một giá trị, cũng có thể là một biểu thức, nhưng chung quy lại biểu thức này phải trả về kết quả là true hoặc false.

Ví dụ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/sh
 
a=10
b=20
 
if [ $a == $b ]
then
   echo "a bằng b"
fi
 
if [ $a != $b ]
then
   echo "a khác b"
fi

Kết quả
1
a is not equal to b

Trong ví dụ này bạn sẽ thấy do $a khác $b nên lệnh if thứ hai sẽ được thực thi, còn lệnh thứ nhất thì không vì $a không bằng $b.

2. Lệnh if else fi

Ở phần 1 là lệnh rẻ nhánh đơn, nghĩa là nó chỉ chạy đúng một hướng là điều kiện expression trả về true, còn false thì không làm gì cả. Nếu bạn muốn expression trả về false sẽ thực hiện một chương trình khác thì có thể kết hợp thêm lệnh else.

Cú pháp
1
2
3
4
5
6
if [ expression ]
then
   Chạy nếu expression true
else
   Chạy nếu expression false
fi

Với chương trình này thì chương trình sẽ rẻ sang hai hướng và phụ thuộc vào biểu thức expression.

Ví dụ
1
2
3
4
5
6
7
8
9
10
11
#!/bin/sh
 
a=10
b=20
 
if [ $a == $b ]
then
   echo "a bằng b"
else
   echo "a khác b"
fi

Kết quả
1
a khác b

3. Lệnh if elif fi

Ở phần 2 ta đã tìm hiểu lệnh rẻ chương trình thành hai nhánh, vậy thì trong phần này ta sẽ tìm hiểu rẻ nhiều hơn hai nhánh, có thể là 3 nhánh, 4 nhánh, ... bằng cách sử dụng kết hợp thêm lệnh elif.

Cú pháp
1
2
3
4
5
6
7
8
9
10
11
12
if [ expression 1 ]
then
   Chạy nếu expression1 đúng
elif [ expression 2 ]
then
   Chạy nếu expression2 đúng
elif [ expression 3 ]
then
   Chạy nếu expression3 đúng
else
   Chạy nếu cả 3 biểu thức trên sai
fi

Bạn có thể tạo nhiều hơn 3 nhánh và điều này phụ thuộc vào chương trình mà bạn muốn viết.

Ví dụ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/sh
 
a=10
b=20
 
if [ $a == $b ]
then
   echo "a bằng b"
elif [ $a -gt $b ]
then
   echo "a lớn hơn b"
else
   echo "a nhỏ hơn b"
fi

Chạy chương trình này lên bạn sẽ thấy kết quả là:

Kết quả
1
a nhỏ hơn b

4. Lời kết

Nếu bạn đã rành một ngôn ngữ nào đó rồi thì sẽ rất dễ học shell script, bởi bản chất nó cũng là lập trình nên chỉ khác nhau về cú pháp, về tư duy thì giống nhau hoàn toàn.

Bài này mình đã giới thiệu xong lệnh if trong shell script, bài tiếp theo ta sẽ nói về lệnh case.Trong bài này chúng ta sẽ tìm hiểu đến lệnh if else, đây là lệnh rẻ nhánh chương trình và được sử dụng rất thường xuyên khi lập trình shell script. Ngoài lệnh if else ra ta còn có lệnh case, nhưng chúng ta sẽ tìm hiểu nó ở bài tiếp theo.

1. Lệnh if then fi

Trong shell cú pháp hơi dài dòng, tựa như pascal vậy :3 nếu bạn từng sử dụng PHP hay C/C++ thì sẽ thấy cú pháp rất đơn giản, nhưng qua shell script thì sẽ hơi khó nhớ.

Cú pháp
1
2
3
4
if [ expression ]
then
   # Thực hiện lệnh nếu expression true
fi

Bài viết này được đăng tại [free tuts .net]

Shell sẽ kiểm tra điều kiện đầu vào expression có giá trị true hay false, nếu true thì thực thi chương trình bên trong lệnh then, sau đó kết thúc tại lệnh fi.

Bạn cần chú ý tới khoảng trắng nhé, đó là phần bắt buộc nên phải có khoảng trắng đầy đủ, nếu không chương trình sẽ biên dịch sai hoặc bị lỗi.

Điều kiện expression có thể là một giá trị, cũng có thể là một biểu thức, nhưng chung quy lại biểu thức này phải trả về kết quả là true hoặc false.

Ví dụ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/sh
 
a=10
b=20
 
if [ $a == $b ]
then
   echo "a bằng b"
fi
 
if [ $a != $b ]
then
   echo "a khác b"
fi

Kết quả
1
a is not equal to b

Trong ví dụ này bạn sẽ thấy do $a khác $b nên lệnh if thứ hai sẽ được thực thi, còn lệnh thứ nhất thì không vì $a không bằng $b.

2. Lệnh if else fi

Ở phần 1 là lệnh rẻ nhánh đơn, nghĩa là nó chỉ chạy đúng một hướng là điều kiện expression trả về true, còn false thì không làm gì cả. Nếu bạn muốn expression trả về false sẽ thực hiện một chương trình khác thì có thể kết hợp thêm lệnh else.

Cú pháp
1
2
3
4
5
6
if [ expression ]
then
   Chạy nếu expression true
else
   Chạy nếu expression false
fi

Với chương trình này thì chương trình sẽ rẻ sang hai hướng và phụ thuộc vào biểu thức expression.

Ví dụ
1
2
3
4
5
6
7
8
9
10
11
#!/bin/sh
 
a=10
b=20
 
if [ $a == $b ]
then
   echo "a bằng b"
else
   echo "a khác b"
fi

Kết quả
1
a khác b

3. Lệnh if elif fi

Ở phần 2 ta đã tìm hiểu lệnh rẻ chương trình thành hai nhánh, vậy thì trong phần này ta sẽ tìm hiểu rẻ nhiều hơn hai nhánh, có thể là 3 nhánh, 4 nhánh, ... bằng cách sử dụng kết hợp thêm lệnh elif.

Cú pháp
1
2
3
4
5
6
7
8
9
10
11
12
if [ expression 1 ]
then
   Chạy nếu expression1 đúng
elif [ expression 2 ]
then
   Chạy nếu expression2 đúng
elif [ expression 3 ]
then
   Chạy nếu expression3 đúng
else
   Chạy nếu cả 3 biểu thức trên sai
fi

Bạn có thể tạo nhiều hơn 3 nhánh và điều này phụ thuộc vào chương trình mà bạn muốn viết.

Ví dụ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/sh
 
a=10
b=20
 
if [ $a == $b ]
then
   echo "a bằng b"
elif [ $a -gt $b ]
then
   echo "a lớn hơn b"
else
   echo "a nhỏ hơn b"
fi

Chạy chương trình này lên bạn sẽ thấy kết quả là:

Kết quả
1
a nhỏ hơn b

4. Lời kết

Nếu bạn đã rành một ngôn ngữ nào đó rồi thì sẽ rất dễ học shell script, bởi bản chất nó cũng là lập trình nên chỉ khác nhau về cú pháp, về tư duy thì giống nhau hoàn toàn.

Bài này mình đã giới thiệu xong lệnh if trong shell script, bài tiếp theo ta sẽ nói về lệnh case.]

Shell sẽ kiểm tra điều kiện đầu vào expression có giá trị true hay false, nếu true thì thực thi chương trình bên trong lệnh then, sau đó kết thúc tại lệnh fi.

Bạn cần chú ý tới khoảng trắng nhé, đó là phần bắt buộc nên phải có khoảng trắng đầy đủ, nếu không chương trình sẽ biên dịch sai hoặc bị lỗi.

Điều kiện expression có thể là một giá trị, cũng có thể là một biểu thức, nhưng chung quy lại biểu thức này phải trả về kết quả là true hoặc false.

Ví dụ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/sh
 
a=10
b=20
 
if [ $a == $b ]
then
   echo "a bằng b"
fi
 
if [ $a != $b ]
then
   echo "a khác b"
fi

Kết quả
1
a is not equal to b

Trong ví dụ này bạn sẽ thấy do $a khác $b nên lệnh if thứ hai sẽ được thực thi, còn lệnh thứ nhất thì không vì $a không bằng $b.

2. Lệnh if else fi

Ở phần 1 là lệnh rẻ nhánh đơn, nghĩa là nó chỉ chạy đúng một hướng là điều kiện expression trả về true, còn false thì không làm gì cả. Nếu bạn muốn expression trả về false sẽ thực hiện một chương trình khác thì có thể kết hợp thêm lệnh else.

Cú pháp
1
2
3
4
5
6
if [ expression ]
then
   Chạy nếu expression true
else
   Chạy nếu expression false
fi

Với chương trình này thì chương trình sẽ rẻ sang hai hướng và phụ thuộc vào biểu thức expression.

Ví dụ
1
2
3
4
5
6
7
8
9
10
11
#!/bin/sh
 
a=10
b=20
 
if [ $a == $b ]
then
   echo "a bằng b"
else
   echo "a khác b"
fi

Kết quả
1
a khác b

3. Lệnh if elif fi

Ở phần 2 ta đã tìm hiểu lệnh rẻ chương trình thành hai nhánh, vậy thì trong phần này ta sẽ tìm hiểu rẻ nhiều hơn hai nhánh, có thể là 3 nhánh, 4 nhánh, ... bằng cách sử dụng kết hợp thêm lệnh elif.

Cú pháp
1
2
3
4
5
6
7
8
9
10
11
12
if [ expression 1 ]
then
   Chạy nếu expression1 đúng
elif [ expression 2 ]
then
   Chạy nếu expression2 đúng
elif [ expression 3 ]
then
   Chạy nếu expression3 đúng
else
   Chạy nếu cả 3 biểu thức trên sai
fi

Bạn có thể tạo nhiều hơn 3 nhánh và điều này phụ thuộc vào chương trình mà bạn muốn viết.

Ví dụ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/sh
 
a=10
b=20
 
if [ $a == $b ]
then
   echo "a bằng b"
elif [ $a -gt $b ]
then
   echo "a lớn hơn b"
else
   echo "a nhỏ hơn b"
fi

Chạy chương trình này lên bạn sẽ thấy kết quả là:

Kết quả
1
a nhỏ hơn b

4. Lời kết

Nếu bạn đã rành một ngôn ngữ nào đó rồi thì sẽ rất dễ học shell script, bởi bản chất nó cũng là lập trình nên chỉ khác nhau về cú pháp, về tư duy thì giống nhau hoàn toàn.

Bài này mình đã giới thiệu xong lệnh if trong shell script, bài tiếp theo ta sẽ nói về lệnh case.

=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master