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 [free tuts .net]
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.
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.