Saya baru saja melihat ini dalam skrip init:
echo $"Stopping Apache"
Untuk apa tanda dolar itu?
Penelitian saya sejauh ini:
Saya menemukan ini di manual bash:
extquote
Jika diatur,
$'string'
dan$"string"
mengutip dilakukan dalam${parameter}
ekspansi yang dilampirkan dalam tanda kutip ganda. Opsi ini diaktifkan secara default.
... tapi saya tidak menemukan perbedaan antara string dengan dan tanpa $
awalan:
$ echo "I am in $PWD"
I am in /var/shared/home/southworth/qed
$ echo $"I am in $PWD"
I am in /var/shared/home/southworth/qed
$ echo $"I am in ${PWD}"
I am in /var/shared/home/southworth/qed
$ echo "I am in ${PWD}"
I am in /var/shared/home/southworth/qed
$ echo 'I am in ${PWD}'
I am in ${PWD}
$ echo $'I am in ${PWD}'
I am in ${PWD}
$ echo $'I am in $PWD'
I am in $PWD
sumber
$"..."
, sesuai pertanyaan.Anda salah menafsirkan manual. Anda hanya akan melihat efek ketika string $-dikutip di dalam
${parameter}
ekspansi.Sumber dan bacaan lebih lanjut: https://lists.gnu.org/archive/html/bug-bash/2005-10/msg00017.html
sumber
$"…"
ada sesuatu yang berbeda.${}
ekspansi untuk menggunakan kutipan ANSI. Periksa sendiri:echo $'ab\ncd'
extquote
tidak tepat apa yang ditanyakan oleh pertanyaan itu."${...}"
berbeda dari$"..."