(P.2) Shell Scripting: Quick Beginner’s Guide ⚙

3 min read

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:

OptionsDescription
-i Khai báo biến dạng interger.
-aKhai báo biến dạng array.
-rKhai báo biến read-only.
-xExport 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:

Avatar photo

Clean Code: Nguyên tắc viết hàm trong lập trình…

Trong quá trình phát triển phần mềm, việc viết mã nguồn dễ đọc, dễ hiểu là yếu tố then chốt để đảm bảo code...
Avatar photo Dat Tran Thanh
3 min read

Clean Code: Nguyên tắc comment trong lập trình

Trong lập trình, code không chỉ là một tập hợp các câu lệnh để máy tính thực thi, mà còn là một hình thức...
Avatar photo Dat Tran Thanh
3 min read

Clean Code: Nguyên tắc xử lý lỗi (Error Handling)

Trong quá trình phát triển phần mềm, việc xử lý lỗi không chỉ là một phần quan trọng mà còn ảnh hưởng trực tiếp...
Avatar photo Dat Tran Thanh
4 min read

Leave a Reply

Your email address will not be published. Required fields are marked *