quote
adalah fungsi yang didefinisikan (di sini di sistem Debian saya, tapi saya kira itu sama di Ubuntu) dalam file /usr/share/bash-completion/bash_completion
, yang itu sendiri bersumber pada /etc/bash.bashrc
saat startup Bash.
Saya tidak akan pernah menggunakan fungsi ini! Jika Anda perlu mengutip hal-hal agar dapat digunakan dengan aman oleh shell, silakan gunakan printf
dengan %q
pengubah, seperti:
printf '%q\n' "Hello my friend I like 'single quotes' as well as \"double quotes\""
Bahkan, meskipun ini sangat jarang digunakan, selalu ada strategi yang lebih baik untuk barang-barang tingkat tinggi seperti yang biasanya dilakukan oleh kita, pengguna. Hal quote
ini digunakan secara internal oleh beberapa hal tidak jelas yang bahkan tidak ingin kita ketahui. Ini quote
fungsi mungkin vendor / distribusi khusus (baca Debian-spesifik) dan mungkin tidak portabel sama sekali, dan bahkan mungkin berubah dalam rilis mendatang.
Edit. Saya baru saja memeriksa sistem Ubuntu 12.04, dan quote
fungsinya didefinisikan dalam /etc/bash_completion
, bersumber oleh /etc/bash.bashrc
, itu sendiri bersumber dari /etc/profile
.
Bagaimana saya menentukan ini? menggunakan sedikit heuristik:
Periksa apakah quote
muncul di /etc/profile
:
grep '\bquote\b' /etc/profile
Tidak. Pergi ke langkah selanjutnya.
Apa saja file yang bersumber /etc/profile
?
grep '[[:space:]]\.[[:space:]]' /etc/profile
Saya punya $i
(perlu melihat ke sumber untuk apa sumber ini, tetapi dalam hal ini adalah file /etc/profile.d/*.sh
jika ada (dan jika dapat dibaca) dan /etc/bash.bashrc
. Melihat /etc/bash.bashrc
.
- Apakah
quote
di /etc/bash.bashrc
? ya / tidak, dll ...