Sebagai contoh, $PATHdan$HOME
Ketika saya mengetiknya echo $PATHmengembalikan saya $PATH, tetapi saya ingin menggemakan kata $PATHdan bukan apa variabel sebenarnya singkatan, echo "$PATH"tidak berfungsi baik.
Sebagai contoh, $PATHdan$HOME
Ketika saya mengetiknya echo $PATHmengembalikan saya $PATH, tetapi saya ingin menggemakan kata $PATHdan bukan apa variabel sebenarnya singkatan, echo "$PATH"tidak berfungsi baik.
Jawaban:
Anda hanya perlu keluar dari dolar $:
echo \$PATH
$PATH
Atau kelilingi dengan tanda kutip tunggal:
echo '$PATH'
$PATH
Ini akan memastikan kata tersebut tidak ditafsirkan oleh shell.
echo -ehalaman manual.
-eflag digunakan untuk memperluas, misalnya, \tuntuk karakter tab literal. Tidak ada hubungannya dengan keluar dari tanda dolar untuk mencegah ekspansi parameter.
echo '\$PATH' >> output.txtmenghasilkan "/ usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / game: / usr / local / games: / opt / vc / bin" ditulis ke file , bukan "$ PATH".
echo '\044*' > first.txtitu akan menampilkan $ * di first.txt
$dalam sintaksis kebanyakan shell adalah karakter yang sangat istimewa. Jika kita hanya melihat kerang mirip Bourne, ia digunakan untuk memperkenalkan:
$#, $var,${foo:-bar}$(logname)(juga ${ logname;}di beberapa shell untuk menghindari subshell)$((1+1))(juga $[1+1]di beberapa kerang).$'\n'atau $"localized string".Kecuali untuk kasus terakhir, ekspansi / penggantian tersebut masih terjadi di dalam tanda kutip ganda (dan di $"..."dalam bashatau ksh93)
Untuk menghentikannya agar $tidak diperlakukan secara khusus, Anda perlu mengutipnya dengan:
echo '$PATH'atau echo '$'PATH. Yang Anda umumnya ingin digunakan karena lolos dari semua karakter (kecuali dirinya sendiri) di sebagian besar shell.echo \$PATH. Juga di dalam tanda kutip ganda:echo "\$PATH"echo $'$PATH', echo $'\44PATH'(dengan asumsi charset kompatibel ASCII),echo $'\u0024'Atau pastikan itu bukan bagian dari bentuk ekspansi yang valid seperti yang tercantum di atas:
echo "$"PATHecho $""PATH,echo $"PATH"ksh93dan bashmendukung $"..."bentuk kutipan.echo $``PATH. Tidak ada alasan mengapa Anda ingin menggunakan yang itu kecuali untuk menunjukkan bahwa itu mungkin.echo "${$+$}PATH" dan yang berbelit-belit lainnya ...Atau Anda bisa menampilkannya $dengan cara lain:
echo: echo '\044PATH'(beberapa echokebutuhan lain echo -e '\044PATH')printf '\44PATH\n'kucing << \ EOF $ PATH EOF
Perhatikan bagaimana backslash tersebut perlu dikutip karena mereka juga spesial untuk shell.
Mudah-mudahan sudah jelas sekarang bahwa meskipun ada banyak cara untuk melakukannya, tidak ada alasan bagus Anda ingin menggunakan hal lain selain di echo '$PATH'sini.
Perhatikan bahwa $ double dalam tanda kutip ganda bisa menjadi masalah. Ini dapat dilakukan dengan menghasilkan $ di luar tanda kutip ganda, seperti ini:
echo "My terminal is $term, first file found in /dev is </dev/`ls /dev | head -n 1`>, the
dollar symbol is '"`echo '$'`"', and a newspaper costs "`echo '$'`"2.50."
or like this:
echo "$term is the value of "'$term'
KELUARAN:
My terminal is xterm, first file found in /dev is </dev/acpi>, the dollar symbol
is '$', and a newspaper costs $2.50.
xterm is the value of $term
echo "$term is the value of \$term"seperti yang sudah dijelaskan pada jawaban lain. Atau printf '%s is the value of $term\n' "$term"sebagai gantinya orang tidak boleh menggunakan echodata yang sewenang-wenang.
Menggunakan:
echo ''\$PATH'' >> output.txt
Ini akan bekerja
ec""h'''o''' ''""''\$P''A""TH''
echo '$PATH'. untuk informasi lebih lanjut tentang penawaran, kunjungi ini dan ini