Saya mengalami masalah dengan melarikan diri karakter di bash. Saya ingin menghindari tanda kutip tunggal dan ganda saat menjalankan perintah di bawah pengguna yang berbeda. Untuk keperluan pertanyaan ini, katakanlah saya ingin menampilkan yang berikut ini di layar:
'single quote phrase' "double quote phrase"
Bagaimana saya bisa keluar dari semua karakter khusus, jika saya juga perlu beralih ke pengguna lain:
sudo su USER -c "echo "'single quote phrase' "double quote phrase"""
Tentu saja, ini tidak memberikan hasil yang tepat.
Jawaban yang Diterima:
Anda dapat menggunakan sintaks literal string berikut:
> echo $''single quote phrase' "double quote phrase"'
'single quote phrase' "double quote phrase"
Dari man bash
Kata-kata dalam bentuk $'string' diperlakukan secara khusus. Kata diperluas
menjadi string, dengan karakter yang lolos dari garis miring terbalik diganti seperti yang ditentukan oleh
standar ANSI C
. Urutan escape backslash, jika ada, didekodekan sebagai berikut:a alert (bell) b backspace e E an escape character f form feed n new line r carriage return t horizontal tab v vertical tab \ backslash ' single quote " double quote nnn the eight-bit character whose value is the octal value nnn (one to three digits) xHH the eight-bit character whose value is the hexadecimal value HH (one or two hex digits) cx a control-x character
Bagaimana Mencapai Portabilitas Dengan Sed -i (Pengeditan di Tempat)?
Apakah Pernah Ada Alasan Bagus Untuk Menjalankan Sudo Su?