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é.
Xem thêm: Lập trình Shell (Bash script)
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.
echo "Hello World"
Cách 2: Tạo một file First.sh bằng nano editor
nano First.sh
Sau đó sửa nội dung của file First.sh thành như sau:
#!/bin/bash
echo "Hello World"
Để thực thi file này thì chúng ta chạy lệnh sau trên terminal.
bash First.sh
Hoặc lệnh sau:
chmod a+x First.sh
./First.sh
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:
#!/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:
bash echo_example.sh
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:
#!/bin/bash
# Add two numeric value
((sum=25+35))
#Print the result
echo $sum
Chạy file bash:
bash comment_example.sh
Kết quả sẽ in ra là:
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:
# 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.
#!/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:
#!/bin/bash
echo "Enter Your Name"
read name
echo "Welcome $name to LinuxHint"
Chạy file này:
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.
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.
Xem thêm: Một vài điều thú vị với bash script
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“.
#!/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:
bash simple_if.sh
Ta thu được kết quả như sau:
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.
#!/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
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.
!/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
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.
#!/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"
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é.
#!/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:
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:
#!/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:
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:
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:
#!/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ả:
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:
#!/bin/bash
string1="Linux"
string2="Hint"
echo "$string1$string2"
string3=$string1+$string2
string3+=" is a good tutorial blog site"
echo $string3
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.
#!/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:
bash while_example.sh
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.
#!/bin/bash
for (( counter=10; counter>0; counter-- ))
do
echo -n "$counter "
done
printf "\n"
Chạy file bash:
bash for_example.sh
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. Hy vọng các bạn có thể vận dụng nó để viết nên các trương chình có ý nghĩa trong quá trình làm việc của bạn.
Nếu bạn còn gì thắc mắc về shell script, hãy để lại bình luận ở bên dưới, mình sẽ trả lời bạn trong thời gian sớm nhất. Bài viết tiếp theo mình sẽ nói về việc Đơn giản hóa tác vụ trong Linux với Bash script nhé!
Một số bài viết liên quan có thể bạn quan tâm:
- Bash Script là gì? Vì sao Bash Script lại quan trọng trong lĩnh vực lập trình?
- Làm quen với Shell Cript
- Cách Tạo Và Sử Dụng Bash Script Cơ Bản Trong Ubuntu
- Cùng học viết Bash Script cơ bản giúp chống tấn công DOS vào website
- Tìm hiểu về ngôn ngữ lập trình AWK: Cách sử dụng AWK trong Bash script
- Đơn giản hóa tác vụ trong Linux với Bash script (phần 2)
Mọi thắc mắc xin hãy liên hệ
Email: [email protected]