Trong phần trước, ta đã tìm hiểu lịch sử về Shell, các loại Shell và những command cơ bản khi sử dụng Shell.
Trong hướng dẫn này, chúng ta sẽ tìm hiểu về cú pháp, các lệnh cơ bản và các kỹ thuật phổ biến để viết shell. Từ việc tạo các biến, điều kiện, vòng lặp đến việc xử lý tệp và thực thi các lệnh hệ thống, để tận dụng sức mạnh của shell scripting.
Dù bạn mới bắt đầu hay đã có kinh nghiệm, hướng dẫn này sẽ cung cấp cho bạn kiến thức cần thiết để bắt đầu viết shell một cách hiệu quả.
1. Variables in Shell 🔡
1.1 Tổng quan
Trước khi bắt đầu viết script, hãy cùng tìm hiểu cách khai báo một variable trong shell.
greetings="Hello, World" && echo "$greetings"
Ở đây, chúng ta lưu string Hello World trong biến có tên là greetings, sau đó với sự trợ giúp của lệnh echo, chúng ta in nó. echo $greetings cũng sẽ hoạt động tốt nhưng việc thêm dấu ngoặc kép ” sẽ ngăn các khoảng trắng có thể có trong biến gây ra sự tàn phá dữ liệu. Vì vậy, một cách tốt là hãy nhớ luôn thêm dấu ngoặc kép vào biến.
1.2 Phân loại
Nếu bạn đã làm việc với bất kỳ ngôn ngữ lập trình hướng đối tượng nào, thì chắc bạn hiểu tầm quan trọng của scope. Nói một cách đơn giản, scope của một biến xác định ranh giới hiệu quả của nó. Trong Shell scope được xác định thành 3 loại chính:
1️⃣ Local Scope: Các biến cục bộ dành riêng cho session của shell hoặc script hiện tại. Chúng có phạm vi giới hạn và không thể nhìn thấy được bởi các lệnh hoặc tập lệnh bên ngoài. Ví dụ để làm cho ý nghĩa rõ ràng hơn,
EDITOR=vim
crontab -e
khi set EDITOR=vim
và chạy lệnh crontab -e
nó sẽ chạy trình soạn thảo vim, Khi chúng ta thoát khỏi phiên shell, nó sẽ mở trình soạn thảo mặc định.
2️⃣ Environment Scope: Các biến môi trường có thể truy cập được đối với bất kỳ tiến trình con nào được sinh ra từ shell hiện tại. Chúng cung cấp một cách để chia sẻ thông tin giữa shell và các tiến trình con của nó.
export EDITOR=vim
crontab -e
Bất cứ khi nào thực hiện lệnh crontab -e
, nó sẽ trình edit Vim
3️⃣ Command Scope: Được sử dụng trong một command, sau khi thực thi lệnh xong, biến đó sẽ không tồn tại
EDITOR=nano crontab -e
Khai báo trong script:
Để loại bỏ sự nhầm lẫn với việc sử dụng export, not export và đặt attribute cho các biến, khai báo được sử dụng để đơn giản hóa. Lệnh này đặc biệt hữu ích khi khai báo các biến có thuộc tính cụ thể. Cú pháp cơ bản là:
declare [options] variable=value
Theo mặc định, các biến được lưu trữ dưới dạng chuỗi, nếu muốn khai báo kiểu dũ liệu khác, chúng ta có thể dùng flag:
Options | Description |
-i | Khai báo biến dạng interger. |
-a | Khai báo biến dạng array. |
-r | Khai báo biến read-only. |
-x | Export thành biến môi trường |
2. Your first shell script
Bây giờ hãy cùng viết shell script nào :v
Bạn có thể dùng bất cứ text editor như nano hoặc vim. Tạo file shell script bằng command
vim myscript
Khi thực hiện lệnh trên, chúng ta tạo một tệp myscript.sh, theo mặc định file extension .sh sẽ được thêm vào. Shell coi tất cả các tệp được tạo từ thiết bị đầu cuối là tệp tập lệnh trừ khi được đề cập.
#!/bin/bash
firstname="$1"
lastname="$2"
echo First Name is "$name" and Surname is "$lastname"
#!/bin/bash
thông báo cho terminal khi thực hiện tập lệnh của chúng ta, nó sẽ dùng bash shell để thực hiện. Nếu bạn muốn sử dụng zsh shell, chỉ cần sử dụng !/bin/zsh
Cấp quyền execute cho file bằng command chmod +x <filename>
Bây giờ hãy thử chạy nó:
./myscript NCC Asia
3. Tổng kết
Ở phần này chúng ta đã tìm hiểu được các loại biến và cách khai báo chúng. Chúng ta cũng đã chạy được shell script đầu tiên. Ở phần sau, chúng ta sẽ tìm hiểu sâu hơn về shell scripting như cách khai báo hàm, conditional statement.
Nguồn tài liệu tham khảo:
Các phần liên quan: