quotelà một chức năng được xác định (ở đây trên hệ thống Debian của tôi, nhưng tôi đoán nó giống với Ubuntu) trong tệp /usr/share/bash-completion/bash_completion, chính nó có nguồn gốc từ /etc/bash.bashrclúc khởi động của Bash.
Tôi sẽ không bao giờ sử dụng chức năng này! Nếu bạn cần trích dẫn nội dung để có thể sử dụng an toàn bằng vỏ, vui lòng sử dụng printfvới công cụ %qsửa đổi, như:
printf '%q\n' "Hello my friend I like 'single quotes' as well as \"double quotes\""
Trên thực tế, ngay cả điều này rất hiếm khi được sử dụng, luôn có những chiến lược tốt hơn cho những thứ cấp cao như chúng ta, người dùng, thường làm. Thứ này quoteđược sử dụng nội bộ bởi một số thứ tối nghĩa mà chúng ta thậm chí không muốn biết. Đây quotechức năng có lẽ là một nhà cung cấp / phân phối cụ thể (đọc Debian cụ thể) và có lẽ không phải cầm tay ở tất cả, và thậm chí có thể thay đổi trong phiên bản tương lai.
Biên tập. Tôi vừa kiểm tra trên hệ thống Ubuntu 12.04 và quotechức năng được xác định trong /etc/bash_completion, có nguồn gốc từ /etc/bash.bashrcchính nó /etc/profile.
Làm thế nào tôi xác định điều này? sử dụng một chút heuristic:
Kiểm tra nếu quotexuất hiện trong /etc/profile:
grep '\bquote\b' /etc/profile
Không. Đi đến bước tiếp theo.
Các tập tin có nguồn gốc là /etc/profilegì?
grep '[[:space:]]\.[[:space:]]' /etc/profile
Tôi có $i(cần xem xét nguồn để biết nguồn này là gì, nhưng trong trường hợp này là các tệp /etc/profile.d/*.shnếu có (và nếu có thể đọc được) và /etc/bash.bashrc. Tìm kiếm /etc/bash.bashrc.
- Là
quotetrong /etc/bash.bashrc? có / không, v.v ...