Hướng dẫn cơ bản bash script
Bash là một trong những công cụ scripting phổ biến trong Unix. Nó được viết theo cụm Bourne Again Shell. Nó là công cụ mạnh mẽ cho mọi lập trình viên Linux và System Administrator. Giờ, hãy cùng tiếp hiểu làm thế nào để dùng bash script thôi!
Unix có 2 loại shell chính:
- Bourne-type shell
- C shell
Bourne shell còn được chia thành:
- Korn shell (ksh)
- Bourne shell (sh)
- POSIX shell (sh)
- Bourne Again shell (bash)
C shell thì được chia thành:
- C shell (csh)
- TENEX (TOPS) C shell (tcsh)
Bash scripts cực kỳ mạnh mẽ và hữu dụng cho lập trình viên. Nó cắt ngắn thời gian thực hiện tác vụ lại bằng chỉ một lệnh gọi hàm duy nhất. Nhiều lệnh dài cũng có thể được tổng hợp thành code thực thi được.
Bash sẵn để dùng cho gần như tất cả các máy Linux và không cần cài đặt gì thêm riêng. Bạn có thể truy cập danh sách shell tại đây:
cat /etc/shells
Kết quả sẽ như sau:
/bin/bash /bin/sh /bin/tcsh /bin/csh
Vì sao sử dụng Bash Functions?
Bash functions có thể:
- Không phải thực hiện các tác vụ lặp đi lặp lại
- Tiết kiệm thời gian
- Tạo một loạt các hoạt động có cấu trúc cao, có khả năng lắp ráp tốt
- Với function, bạn có thể nhập giá trị động vào lệnh sử dụng argument trong dòng lệnh
- Đơn giản hóa các lệnh thành một đơn vị vận hành duy nhất
- Tạo xong có thể chạy nhiều lần bởi bất kỳ ai. Tạo một lần thực thi nhiều lần.
- Logical flows có thể được tạob ằng bash functions
- Bash functions có thể thực thi khi server khởi động bằng cách thêm cron job để tự chạy
- Commands có thể debugged
- Có shell command tương tác
Bash đúng là một công cụ tuyệt vời để cải thiên cộng việc thường ngày của bạn để cải thiện dự án. Tiềm năng sử dụng của nó không giới hạn, vì vậy hôm nay chúng tôi sẽ chỉ bạn cơ bản trước. Sẵn sàng để viết script đầu tiên của bạn nào!
Bắt đầu với Bash Script
Để bắt đầu, chúng ta cần truy cập SSH vào server VPS trước. Nếu bạn gặp khó khăn trong việc này, hãy tham khảo hướng dẫn hữu ích của chúng tôi tại đây.
Lệnh đầu tiên bạn cần biết là lệnh mở hướng dẫn của bash:
man bash
Tiếp theo chúng ta sẽ cần tạo file .sh. Để làm vậy bạn cần dùng VIM Editor. Tạo file bằng lệnh như sau:
vim sampleFunction.sh
Giờ đã vào trong file .sh, chúng ta có thể chỉnh sửa nó
Nó sẽ cho bạn thấy một số ví dụ của Bash command và cách dụng. Mỗi bash script bắt đầu với các dòng sau:
#!/bin/bash
Lệnh bên dưới hiển thị đường dẫn của bash script.
which bash
Nó sẽ cho bạn kết quả như sau:
/bin/bash
Cấu trúc bash thông thường như sau:
function functionName { first command second command }
Nó có thể được viết thành:
functionName (){ first command second command }
Trong một dòng, bạn có thể viết như sau:
functionName() { first command; second command; } caca
Ví dụ cho hàm này là ở bên dưới, chúng tôi tạo thư mục trước rồi sau đó trỏ đường dẫn tới thư mục mới:
sampleFunction () { mkdir -p $1 cd $1 }
$1 đại diện cho tham số của dòng lệnh. Bash có thể tạo input động trong dòng lệnh. Để kiểm tra hàm này, bạn hãyt hực thi:
sampleFunction myDir
Tại đây myDir là tên một thư mục hợp lệ sẽ được tạo. Nếu bạn kiểm tra thư mục hiện hành bằng lệnh pwd bạn sẽ thấy bạn đang ở trong thư mục vừa tạo có tên myDir.
Tương tự vậy, tất cả các lệnh đã được dùng có thể thêm vào thành bash function.
Hãy nhớ, khi bạn đã thực hiện xong với VIM editor để chỉnh file .sh, bạn lưu lại và thoát bằng cách nhấn nút ESC để đi tới chế độ dòng lệnh, rồi gõ :wq để lưu và thoát.
Bash Functions cơ bản
Một trong các ví dụ của bash function là:
#!/bin/bash testfunction(){ echo "My first function" } testfunction
Nếu bạn lưu script này trong testFunction.sh và thực thi nó bằng ./testFunction.sh, vậy kết quả bạn sẽ thấy là:
My first function
Echo sẽ in kết quả ra màn hình. Nếu bạn đổi vị trí của hàm này với một lệnh gọi hàm, vậy kết quả sẽ ra lỗi. Code snippet bên dưới sẽ xuất lỗi:
#!/bin/bash testfunction testfunction(){ echo "My first function" }
Vậy đầu tiên bạn sẽ cần định nghĩa hàm này và kích hoạt nó.
Bash functions chấp nhật mọi số là tham số. BÊn dưới là ví dụ nó lấy 2 tham số:
#!/bin/bash testfunction(){ echo $1 echo $2 }
testfunction "Hello" "World"
Bạn có thể sử dụng input trực tiếp và thực hiện bash function. Kết quả như sau:
#!/bin/bash addition(){ sum=$(($1+$2)) return $sum } read -p "Enter a number: " int1 read -p "Enter a number: " int2 add $int1 $int2 echo "The result is : " $?
Trong ví dụ trên, giá trị cộng thêm được gắn vào một tổngm nó trả về từ hàm. Interactive input được dùng bởi lệnh read cho cả 2 số. Cuối cùng, kết được in ra bằng dấu $? Chứa giá trị trả về từ $sum của hàm này.
Bash functions luôn trả về chỉ một giá trị.
Bạn có thể thêm comment trong file bằng cách đặt dấu # để lưu lại các ghi chú hữu dụng.
Bash scripts hỗ trợ:
- While loop
- For loop
- If statement
- And logic
- Or logic
- Else If statement
- Case Statement
Bên dưới là một ví dụ ngắn của While loop của bash script.
#!/bin/bash isvalid=true count=1 while [ $isvalid ] do echo $count if [ $count -eq 5 ]; then break fi ((count++)) done
Ví dụ trên sử dụng while và if. Nó thực thi vòng lặp 5 lần trước khi thoát sau khi thực thi các điều kiện if.
Kết quả sẽ như sau:
1 2 3 4 5
For loop được dùng để tăng hoặc giảm bộ đếm. Một ví dụ của for loop là:
#!/bin/bash for (( count=10; count>0; count-- )) do echo -n "$count " done
Kết quả của for loop sẽ thành:
10 9 8 7 6 5 4 3 2 1
Trong Bash Script, && đại diện cho AND, còn || đại diện cho OR.
Với statement If, bạn cũng có thể định nghĩa Else if. Ví dụ như sau:
#!/bin/bash echo "Enter a valid number" read n if [ $n -eq 101 ]; then echo "This is first number" elif [ $n -eq 510 ]; then echo " This is second number " elif [ $n -eq 999 ]; then echo " This is third number " else echo "No numbers over here" fi
Ví dụ ở trên cũng có thể được viết dưới case statement:
#!/bin/bash echo " Enter a valid number" read n case $n in 101) Echo " This is the first number " ;; 510) echo " This is the second number " ;; 999) echo " This is the third number " ;; *) echo " No numbers over here " ;; esac
Trong case statements, dấu ;; đại diện cho việc cách nhau từng trường hợp
Lời kết
Vậy là bạn đã hoàn tất học cơ bản của bash function rồi đó. Không khó lắm phải không? Bash mạnh mẽ và lại dễ dùng. Sau khi nắm được cơ bản bash script, bạn có thể đào sâu hơn và tạo nhiều mẫu ví dụ thú vị hơn để khám phá tìm năng của bash function. Chúc may mắn!
Write a Comment
You must be logged in to post a comment.