🌱 Bash Basic - Các ký tự đặc biệt Special Characters
Bash sử dụng nhiều ký tự đặc biệt (special characters) để thực hiện các chức năng khác nhau trong script và dòng lệnh. Hiểu rõ ý nghĩa và cách sử dụng của chúng là điều cần thiết khi viết Bash script. Bài viết này mang tính chất liệt kê các ký tự đặc biệt thường sử dụng trong Bash và ví dụ sử dụng chúng! - Mục tiêu để những bài sau chúng ta có thể tra cứu lại.
shebang #!
Ký tự đầu tiên trong một file Bash thường là shebang (#!), được đặt trên dòng đầu tiên của file. Shebang chỉ dẫn cho hệ điều hành biết chương trình nào sẽ được sử dụng để thực thi script.
#!
: Đây là shebang, bắt buộc phải đứng đầu tiên trong file script./path/to/interpreter
: Đường dẫn tuyệt đối đến chương trình interpreter sẽ xử lý script, ví dụ/bin/bash
,/usr/bin/env python3
.
Một số cách dùng shebang:
Sử dụng đường dẫn tuyệt đối đến Bash:
Đây là cách truyền thống và phổ biến nhất trên các hệ thống Linux.Sử dụng
env
để tìm Bash:- Ưu điểm: Tìm Bash trong
PATH
thay vì sử dụng đường dẫn cố định. - Hữu ích khi script cần chạy trên các hệ thống mà Bash có thể không nằm ở
/bin/bash
.
- Ưu điểm: Tìm Bash trong
Sử dụng Bash với chế độ gỡ lỗi:
-x
: Kích hoạt chế độ debug, in ra từng lệnh trước khi thực thi.
Chạy Bash ở chế độ nghiêm ngặt:
-e
: Dừng script ngay khi có lỗi xảy ra.
1. Ký tự điều khiển (Control Characters)
#
- Ý nghĩa: Dùng để chú thích (comment) trong script.
- Ví dụ:
\
- Ý nghĩa: Ký tự escape, dùng để bỏ qua ý nghĩa đặc biệt của ký tự kế tiếp.
- Ví dụ:
;
- Ý nghĩa: Phân tách nhiều lệnh trên cùng một dòng.
- Ví dụ:
&
- Ý nghĩa: Chạy lệnh ở chế độ nền (background).
- Ví dụ:
|
- Ý nghĩa: Dùng để chuyển kết quả của một lệnh sang lệnh khác (pipeline).
- Ví dụ:
>
và >>
- Ý nghĩa: Chuyển hướng đầu ra đến một file.
>
: Ghi đè file.>>
: Ghi thêm vào file.
- Ví dụ:
<
- Ý nghĩa: Chuyển hướng đầu vào từ một file.
- Ví dụ:
&&
- Ý nghĩa: Chạy lệnh thứ hai nếu lệnh đầu tiên thành công.
- Ví dụ:
||
- Ý nghĩa: Chạy lệnh thứ hai nếu lệnh đầu tiên thất bại.
- Ví dụ:
2. Ký tự nhóm (Grouping Characters)
{}
- Ý nghĩa: Nhóm lệnh hoặc mở rộng tên file.
- Ví dụ:
()
- Ý nghĩa: Chạy lệnh trong một shell con.
- Ví dụ:
[]
- Ý nghĩa: Dùng để kiểm tra điều kiện (trong lệnh
test
) hoặc biểu thức chính quy. - Ví dụ:
$(...)
- Ý nghĩa: Substitution, thay thế đầu ra của lệnh bên trong.
- Ví dụ:
3. Ký tự wildcard (Pattern Matching)
*
- Ý nghĩa: Khớp với mọi chuỗi (zero hoặc nhiều ký tự).
- Ví dụ:
?
- Ý nghĩa: Khớp với một ký tự bất kỳ.
- Ví dụ:
[]
- Ý nghĩa: Khớp với bất kỳ ký tự nào trong tập hợp.
- Ví dụ:
!
trong []
- Ý nghĩa: Khớp với bất kỳ ký tự nào không thuộc tập hợp.
- Ví dụ:
4. Ký tự đặc biệt trong biến
$
- Ý nghĩa: Tham chiếu đến giá trị của biến.
- Ví dụ:
${}
- Ý nghĩa: Cú pháp mở rộng để tham chiếu và xử lý biến.
- Ví dụ:
$?
- Ý nghĩa: Trả về mã thoát (exit code) của lệnh vừa thực hiện.
- Ví dụ:
$#
- Ý nghĩa: Số lượng tham số dòng lệnh.
- Ví dụ:
$@
và $*
- Ý nghĩa: Truy cập tất cả tham số dòng lệnh.
- Ví dụ:
5. Ký tự khác
~
- Ý nghĩa: Thư mục home của người dùng hiện tại.
- Ví dụ:
!
- Ý nghĩa: Thực hiện lại lệnh trước đó hoặc mở rộng lịch sử lệnh.
- Ví dụ:
"
và '
- Ý nghĩa: Quoting (đóng khung chuỗi).
"
: Cho phép thay thế biến.'
: Giữ nguyên mọi ký tự bên trong.
- Ví dụ:
Hiểu và sử dụng thành thạo các ký tự đặc biệt này là yếu tố then chốt để viết và quản lý Bash script một cách hiệu quả. Nhưng mà để thuộc lòng tất cả ký tự trên thì rất khó, vì vậy, bạn có thể coi đây như một phụ lục khi học để sau này có thể tra cứu lại.
>>>>>> Follow ngay <<<<<<<
Để nhận được những bài học miễn phí mới nhất nhé 😊
Chúc các bạn học tập tốt 😊