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

Các ví dụ học Bash Script trong Linux cơ bản nhất

Trong bài này mình sẽ tổng hợp 30 bash script giúp bạn ôn tập tất cả những kiến thức shell script từ cơ bản tới nâng cao.

Bash Script đuọc xem là mã code lập trình trên Linux, được sử dụng để phục vụ cho nhiều mục đích khác nhau. Ví dụ bạn cần chạy nhiều câu lệnh shell thì hãy gom nó vào một file bash.

Công việc của bash chủ yếu giúp người quản trị tạo ra những chức năng có sẵn, lúc nào cần là gọi đến file bash và thực thi. Ví dụ như các chức năng tùy chỉnh trong admin, các chương trình tự động cài đặt LAMP ...

Qua bài viết này mình sẽ giúp các bạn hiểu được ý nghĩa phần nào về Bash Script. Không mất thời gian nữa, chúng ta hãy bắt đầu tìm hiểu ngay nhé.

Bài viết này được đăng tại [tranvanbinh.vn]

Mục lục

  • 1. Chương trình Bash Hello World
  • 2. Sử dụng lệnh echo trong Bash Script
  • 3. Sử dụng comment trong file Bash Script
  • 4. Multi-line comment trong Bash
  • 5. Nhận dữ liệu nhập vào trong Bash
  • 6. Sử dụng lệnh if trong Bash
  • 7. Sử dụng IF ELSE trong Bash Script
  • 8. Sử dụng toán tử AND và OR trong Bash
  • 9. Sử dụng lệnh Case trong Bash
  • 10. Lấy tham số truyền vào từ command line
  • 11. Lấy tham số dưới dạng name trong Base Script
  • 12. Cộng các biến trong chuỗi trong Base Script
  • 13. Sử dụng vòng lặp while trong Bash
  • 14. Sử dụng vòng lặp for trong Bash

1. Chương trình Bash Hello World

Bạn có thể chạy đoạn mã Bash trên terminal hoặc gom nó vào một file bash rồi thực thi file đó. Tuy vào nhu cầu mà chọn cách cho phù hợp.

Cách 1: Chạy trên terminal.

1
echo "Hello World"

Cách 2: Tạo một file First.sh bằng nano editor

1
nano First.sh

Sau đó sửa nội dung của file First.sh thành như sau:

1
2
#!/bin/bash
echo "Hello World"

Để thực thi file này thì chúng ta chạy lệnh sau trên terminal.

1
bash First.sh

Hoặc lệnh sau:

1
2
chmod a+x First.sh
./First.sh

bash 1 png

2. Sử dụng lệnh echo trong Bash Script

Bạn có thể sử dụng lệnh echo với nhiều tùy chọn khác nhau. Nếu bạn chạy lệnh echo mà không có tùy chọn thì nó sẽ in ra nội dung mà bạn truyền vào.

  • Tùy chọn -n dùng để in nội dung và bỏ qua ký tự xuống hàng \n.
  • Tùy chọn -e thì dùng để xóa đi ký tự gạch chéo khỏi output.

Hãy tạo file echo_example.sh và nhập nội dung vào như sau:

1
2
3
4
#!/bin/bash
echo "Printing text with newline"
echo -n "Printing text without newline"
echo -e "\nRemoving \t backslash \t characters\n"

Sau đó chạy lệnh thực thi:

1
bash echo_example.sh

base 2 png

3. Sử dụng comment trong file Bash Script

Trong quá trình code bạn cần ghi chú hoặc giải thích ý nghĩa cho một đoạn code nào đó thì hãy sử dụng comment nhé.

Để tạo comment trong file bash thì đặt trước comment dấu #.

Hãy tạo một file comment_example.sh và nhập nội dung sao vào:

1
2
3
4
5
6
7
#!/bin/bash
 
# Add two numeric value
((sum=25+35))
 
#Print the result
echo $sum

Chạy file bash:

1
bash comment_example.sh

Kết quả sẽ in ra là:

bash 3 png

Như vậy, những dòng comment đã không được biên dịch.

4. Multi-line comment trong Bash

Multi-line comment là loại comment nhiều dòng.

Thực tế bạn có thể sử dụng nhiều dấu thăng # để tạo comment trên nhiều hàng như sau:

1
2
3
# comment1
# comment2
# comment 3

Tuy nhiên, bạn có thể đặt nội dung đó nằm giữa dấu : và dấu ' như sau.

1
2
3
4
5
6
7
#!/bin/bash
: '
The following script calculates
the square value of the number, 5.
'
((area=5*5))
echo $area

Vẫn ok nhé các bạn.

5. Nhận dữ liệu nhập vào trong Bash

Chúng ta có lệnh read, đây là lệnh đọc dữ liệu từ người dùng nhập vào. Nó sẽ gán dữ liệu vào một biến, và lúc này bạn có thể sử dụng biến đó trong chương trình của mình.

Tạo một file user_input.sh với nội dung như sau:

1
2
3
4
#!/bin/bash
echo "Enter Your Name"
read name
echo "Welcome $name to LinuxHint"

Chạy file này:

1
bash user_input.sh

Như trong hình, bạn thấy khi mình nhập Fahmida thì biến name sẽ lưu giá trị đó, cuối cùng lệnh echo sẽ in giá trị ra màn hình.

bash 7 png

6. Sử dụng lệnh if trong Bash

Lệnh if dùng để rẻ nhánh chương trình thành nhiều phân đoạn khác nhau. Đây là lệnh khá quan trọng, nó giúp bạn kiểm tra lỗi, xử lý lỗi một cách logic nhất.

Tạo một file simple_if.sh và sau đó viết chương trình như sau: Cho một biến n, kiếm tra biến đó nếu bé hơn 0 thì xuất ra thông báo "It is a one digit number", lớn hơn 0 hì in ra thông báo "It is a two digit number".

1
2
3
4
5
6
7
8
#!/bin/bash
n=10
if [ $n -lt 10 ];
then
    echo "It is a one digit number"
else
    echo "It is a two digit number"
fi

Chạy file này lên:

1
bash simple_if.sh

Ta thu được kết quả như sau:

bash 8 png

Về phần so sánh thì ký hiệu như sau:

  • -ne là so sánh không bằng nhau.
  • -gt là so sánh lớn hơn.
  • -lt là so sánh bé hơn.
  • -eq là so sánh bằng.

7. Sử dụng IF ELSE trong Bash Script

Lệnh if ở trên chúng ta chỉ được một nhánh, nếu bạn muốn rẻ nhiều nhánh thì phải sử dụng thêm phần ELSE.

Ví dụ dưới đây mình yêu cầu người dùng nhập vào một số may mắn. Nếu:

  • Nếu nhập vào số 101 thì đạt giải nhất.
  • Nhập vào số 510 thì đạt giải nhì.
  • Nhập vào số 999 thì đặt giải ba.
  • Tất cả các số còn lại là trật giải.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/bin/bash
 
echo "Enter your lucky number"
read n
 
if [ $n -eq 101 ];
then
    echo "You got 1st prize"
elif [ $n -eq 510 ];
then
    echo "You got 2nd prize"
elif [ $n -eq 999 ];
then
    echo "You got 3rd prize"
 
else
    echo "Sorry, try for the next time"
fi

bash 11 png

8. Sử dụng toán tử AND và OR trong Bash

Bạn có thể thêm nhiều điều kiện vào trong lệnh if bằng cách sử dụng các toán tử quan hệ như AND / OR.

  • AND (&&) sẽ trả về true khi cả hai vế đều true, ngược lại một trong hai về false là nó trả về false.
  • OR (||) trả về true khi một trong hai vế true hoặc cả hai đều true, chỉ trả về false khi cả hai đều false.

Ví dụ dưới đây mình yêu cầu người dùng nhập vào tên đăng nhập là admin và mật khẩu là secret. Nếu nhập đúng thì thông báo Valid, ngược lại thông báo Invalid.

1
2
3
4
5
6
7
8
9
10
11
12
!/bin/bash
 
echo "Enter username"
read username
echo "Enter password"
read password
 
if [[ ( $username == "admin" && $password == "secret" ) ]]; then
    echo "valid user"
else
    echo "invalid user"
fi

bash 9 png

Ví dụ tiếp theo mình sẽ yêu cầu người dùng nhập vào mọt con số ngẫu nhiên, nếu họ nhập vào số 15 hoặc 45 thì Win game.

1
2
3
4
5
6
7
8
9
10
#!/bin/bash
 
echo "Enter any number"
read n
 
if [[ ( $n -eq 15 || $n  -eq 45 ) ]]
then
    echo "You won the game"
else
    echo "You lost the game"

bash 10 png

9. Sử dụng lệnh Case trong Bash

Lệnh case có công dụng giống như lệnh if else, dùng để rẻ nhánh chương trình thành nhiều phần khác nhau.

Ví dụ dưới đây mình giải lại bài tập ở phần lệnh if else nhé.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash
 
echo "Enter your lucky number"
read n
case $n in
101)
    echo echo "You got 1st prize" ;;
510)
    echo "You got 2nd prize" ;;
999)
    echo "You got 3rd prize" ;;
*)
    echo "Sorry, try for the next time" ;;
esac

10. Lấy tham số truyền vào từ command line

Để lấy tham số truyền vào từ command line thì ta sử dụng ký hiệu ${sốthứtự}.

Giả sử bạn chạy lệnh sau:

1
bash command_line.sh Linux Hint

Thì sẽ có hai tham số $1 và $2.

Tạo một file command_line.sh và nhập nội dung sau vào:

1
2
3
4
#!/bin/bash
echo "Total arguments : $#"
echo "1st Argument = $1"
echo "2nd argument = $2"

Chạy file trên thì thu được kết quả như sau:

bash 12 png

11. Lấy tham số dưới dạng name trong Base Script

Trong phần trên chúng ta lấy them số theo thứ tự, bây giờ nếu bạn muốn lấy theo kiểu đặt một cái tên cho nó thì xem ví dụ dưới đây.

Hãy tạo một file command_line_names.sh nhé.

Trong ví dụ này mình sẽ chạy file bash bằng lệnh:

1
bash command_line_names X=45 Y=30

Mình đã truyền hai tham số X và Y, bây giờ trong nội dung file base sẽ nhận nó như sau:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash
for arg in "$@"
do
    index=$(echo $arg | cut -f1 -d=)
    val=$(echo $arg | cut -f2 -d=)
    case $index in
    X) x=$val;;
 
    Y) y=$val;;
 
    *)
esac
done
((result=x+y))
echo "X+Y=$result"

Kết quả:

base 13 png

12. Cộng các biến trong chuỗi trong Base Script

Bạn có thể dễ dàng kết hợp các chuỗi lại với nhau bằng toán tử cộng, trường hợp chỉ in ra màn hình thì có thể đặt các biến đó trong cặp nháy kép.

Tạo file string_combine.sh với nội dung như sau:

1
2
3
4
5
6
7
8
#!/bin/bash
 
string1="Linux"
string2="Hint"
echo "$string1$string2"
string3=$string1+$string2
string3+=" is a good tutorial blog site"
echo $string3

base14 png

13. Sử dụng vòng lặp while trong Bash

Hãy tạo một file bash có tên là ‘while_example.sh’ để học cách sử dụng vòng lặp while nhé.

Trong ví dụ này vòng lặp while sẽ lặp lại 5 lần. Giá trị của biến đếm sẽ tăng lên 1 trong mỗi bước. Khi giá trị của biến đếm sẽ là 5 thì vòng lặp while sẽ kết thúc.

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
valid=true
count=1
while [ $valid ]
do
    echo $count
    if [ $count -eq 5 ];
        then
        break
    fi
    ((count++))
done

Chạy file bash này:

1
bash while_example.sh

bash 5 png

14. Sử dụng vòng lặp for trong Bash

Vòng lặp for có phần dễ hiểu hơn vòng lặp while.

Hãy tạo file có tên ‘for_example.sh’ và thêm các đoạn lệnh dưới đây. Ở đây, vòng lặp for sẽ lặp lại 10 lần và in ra tất cả các giá trị vào trong một hàng.

1
2
3
4
5
6
#!/bin/bash
for (( counter=10; counter>0; counter-- ))
do
    echo -n "$counter "
done
printf "\n"

Chạy file bash:

1
bash for_example.sh

bash 6 png

Trên là tổng hợp những bài tập thực hành Base Script cơ bản nhất, giúp bạn tiếp cận với việc lập trình trên Linux.

=============================
* 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