Backslash sẽ ngăn chặn việc mở rộng bí danh, tức là nó thực thi lệnh gốc và đảm bảo rằng phiên bản bí danh không chạy. Các tập lệnh có thể vô tình chạy với mở rộng bí danh khi hệ thống đã được đặt shopt -s expand_aliases
(chỉ BASH) hoặc nếu nó được thực thi bằng cách sử dụng source
.
./conda.sh # usually no alias expansion (unless `shopt -s expand_aliases` in BASH)
source ./conda.sh # alias expansion
. ./conda.sh # alias expansion
Một số sysadins muốn đặt dấu gạch chéo ngược vào mọi thứ như một biện pháp phòng ngừa chống lại tác dụng phụ của bí danh, chỉ trong trường hợp nó được đặt bí danh ở một nơi khác và bí danh được mở rộng như đã giải thích trước đây. Ví dụ: nếu hệ thống đã đặt điều này alias dirname='dirname -z'
ở đâu đó và điều kiện cho phép mở rộng bí danh, thì một tập lệnh cố gắng gọi dirname sẽ không may gọi dirname -z
thay, đó không phải là tập lệnh dự định.
Nếu chắc chắn rằng bí danh đó không tồn tại, chúng ta có thể xóa tất cả dấu gạch chéo ngược và nó sẽ hoạt động tốt.
Ngoài ra, người ta có thể sử dụng command
thay vì phiên bản dấu gạch chéo ngược để triệt tiêu bí danh. Do đó, thay vì \dirname
, người ta có thể sử dụng command dirname
, có thể trông dễ đọc hơn. (Đối với các lệnh tích hợp như cd
, người ta nên sử dụng builtin
thay thế). Tôi thích điều này thay vào đó, vì nó cũng bỏ qua chức năng có cùng tên cũng như bất kỳ bí danh nào.