Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

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.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

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é.

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

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:

#!/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

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:

#!/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à:

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:

# 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.

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".

#!/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:

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.
#!/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.

!/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.

#!/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é.

#!/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:

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:

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ả:

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:

#!/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.

#!/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

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.

#!/bin/bash
for (( counter=10; counter>0; counter-- ))
do
    echo -n "$counter "
done
printf "\n"

Chạy file bash:

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.

Cùng chuyên mục:

Cách dùng lệnh Users trong Linux để xem user đang online

Cách dùng lệnh Users trong Linux để xem user đang online

Nếu bạn đang là quản trị viên thì việc quản lý thông tin / xem…

Cách sử dụng lệnh Wall trong Linux

Cách sử dụng lệnh Wall trong Linux

Wall là một công cụ dòng lệnh giúp hiển thị thông báo đến tất cả…

Cách dùng lệnh Whereis trong Linux

Cách dùng lệnh Whereis trong Linux

Whereis là một tiện ích dòng lệnh command line, nó cho phép bạn tìm ..

Cách sử dụng lệnh Which trong Linux

Cách sử dụng lệnh Which trong Linux

Linux dùng lệnh which để xác định vị trí file thực thi của lệnh mà…

Cách sử dụng lệnh whoami trong Linux

Cách sử dụng lệnh whoami trong Linux

Giống như tên gọi của nó, lệnh whoami in tên người dùng đang chạy ...

Cách dùng lệnh zcat trong Linux

Cách dùng lệnh zcat trong Linux

Mặc dù tính năng nén file rất hữu ích vì nó giúp ta tiết kiệm…

Hiểu rõ hơn về chmod 777 trong Linux

Hiểu rõ hơn về chmod 777 trong Linux

Bạn đang xây dựng một website và sử dụng tính năng upload ...

Cách sử dụng lệnh tail trong Linux

Cách sử dụng lệnh tail trong Linux

Mặc định thì lệnh tail sẽ hiển thị 10 dòng cuối cùng của file, thông…

Cách sử dụng lệnh Head trong Linux

Cách sử dụng lệnh Head trong Linux

Trong quá trình quản trị dữ liệu trên Linux đôi khi bạn muốn xem nhanh…

Cách sử dụng lệnh Whatis trong Linux

Cách sử dụng lệnh Whatis trong Linux

Trong bài này chúng ta sẽ tìm hiểu lệnh whatis trong ...

Cách sử dụng lệnh kill trong Linux

Cách sử dụng lệnh kill trong Linux

Linux là một hệ điều hành rất nhanh nhưng không phải lúc nào nó không…

Cách dùng lệnh who trong Linux

Cách dùng lệnh who trong Linux

Who là một công cụ dòng lệnh command-line, được ...

Cách dùng lệnh basename trong Linux

Cách dùng lệnh basename trong Linux

basename là một tiện ích dòng lệnh (command line) dùng để lấy ...

Cách sử dụng lệnh gzip trên Linux

Cách sử dụng lệnh gzip trên Linux

Gzip là một trong những thuật toán nén file phổ biến nhất, nó cho phép…

Cách dùng lệnh wait trong Linux

Cách dùng lệnh wait trong Linux

Wait là lệnh dùng để đợi một thời gian cho tới khi công việc nào…

Cách dùng lệnh ping trong Linux

Cách dùng lệnh ping trong Linux

Lệnh ping là một trong những công cụ được sử dụng nhiều nhất để khắc…

Cách dùng lệnh sleep trong Linux

Cách dùng lệnh sleep trong Linux

sleep là một tiện ích command line cho phép lập trình viên ..

Vòng lặp until trong Shell Script

Vòng lặp until trong Shell Script

Vòng lặp while trong Shell Script

Vòng lặp while trong Shell Script

Trong Linux script, vòng lặp while được sử dụng trong ...

Cách kiểm tra địa chỉ IP trên Linux

Cách kiểm tra địa chỉ IP trên Linux

Biết địa chỉ IP của thiết bị là điều quan trọng khi giải quyết khắc…

Top