tl; dr : Để trích dẫn một ký tự đặc biệt hoặc thoát nó bằng dấu gạch chéo ngược \
hoặc đặt nó trong " "
dấu ngoặc kép hoặc dấu ngoặc đơn ' '
. Tab ↹Hoàn thành chăm sóc trích dẫn thích hợp.
Những gì bạn đang yêu cầu được gọi là Trích dẫn :
Trích dẫn được sử dụng để loại bỏ ý nghĩa đặc biệt của các ký tự hoặc từ nhất định vào vỏ. (Hoài) Có ba cơ chế trích dẫn: ký tự thoát , dấu ngoặc đơn và dấu ngoặc kép .
[trích dẫn lấy từ man bash
]
Trích dẫn với nhân vật thoát \
Dấu gạch chéo ngược không trích dẫn ( \
) là ký tự thoát. Nó bảo tồn giá trị theo nghĩa đen của ký tự tiếp theo, ngoại trừ <newline>
.
Vì vậy, để nhập một thư mục hoặc một tệp có một ký tự đặc biệt, hãy thoát cái sau bằng \
, ví dụ:
cd space\ dir # change into directory called “space dir”
cat space\ file # print the content of file “space file”
echo content > \\ # print “content” into file “\”
cat \( # print the content of file “(”
ls -l \? # list file “?”
bash
's Programmable Completion (aka Tab ↹Hoàn) tự động thoát ký tự đặc biệt với các ký tự thoát \
.
Trích dẫn với dấu ngoặc kép " "
Kèm theo ký tự trong dấu ngoặc kép giữ gìn giá trị văn chương của tất cả các ký tự trong dấu ngoặc kép, với ngoại lệ của $
, `
, \
, và, khi mở rộng lịch sử được kích hoạt, !
.
Vì vậy, để nhập một thư mục hoặc một tệp có ký tự đặc biệt, hãy thoát ít nhất phần sau hoặc phần lớn hơn của tên tệp hoặc đường dẫn của bạn bằng dấu ngoặc kép, ví dụ:
cd space" "dir # change into directory called “space dir”
cd spac"e di"r # equally
cd "space dir" # equally
cat "space file" # print the content of file “space file”
cat "(" # print the content of file “(”
ls -l "?" # list file “?”
Như $
, `
và !
giữ ý nghĩa đặc biệt của chúng bên trong dấu ngoặc kép, Mở rộng tham số , Thay thế lệnh , Mở rộng số học và Mở rộng lịch sử được thực hiện trên các chuỗi trích dẫn kép.
Trích dẫn với dấu ngoặc đơn ' '
Các ký tự kèm theo trong dấu ngoặc đơn duy trì giá trị theo nghĩa đen của từng ký tự trong dấu ngoặc kép. Một trích dẫn có thể không xảy ra giữa các trích dẫn đơn, ngay cả khi trước dấu gạch chéo ngược.
Vì vậy, để nhập một thư mục hoặc một tệp có ký tự đặc biệt, hãy thoát ít nhất phần sau hoặc phần lớn hơn của tên tệp hoặc đường dẫn của bạn bằng dấu ngoặc kép, ví dụ:
cd space' 'dir # change into directory called “space dir”
cd spac'e di'r # equal
cd 'space dir' # equal
cat 'space file' # print the content of file “space file”
cat '(' # print the content of file “(”
ls -l '?' # list file “?”
echo content > '\' # print “content” into file “\”
Bạn có thể tìm hiểu thêm về Trích dẫn trong man bash
/ QUOTING , trên wiki.bash-hackers.org và trên tldp.org .