Sekadar catatan / ringkasan singkat untuk siapa saja yang datang ke sini melalui Google mencari jawaban atas pertanyaan umum yang ditanyakan dalam judul (seperti saya). Salah satu dari berikut ini seharusnya berfungsi untuk mendapatkan akses ke variabel shell di dalam tanda kutip:
echo "$VARIABLE"
echo "${VARIABLE}"
Penggunaan tanda kutip tunggal adalah masalah utama. Menurut Manual Referensi Bash :
Karakter yang dimasukkan dalam tanda kutip tunggal ( '
) mempertahankan nilai literal dari setiap karakter di dalam tanda kutip. Kutipan tunggal tidak boleh muncul di antara tanda kutip tunggal, bahkan jika diawali dengan garis miring terbalik. [...] Melampirkan karakter dalam tanda kutip ganda ( "
) mempertahankan nilai literal dari semua karakter dalam tanda kutip, dengan pengecualian $
, `
, \
, dan, ketika ekspansi sejarah diaktifkan, !
. Karakter $
dan `pertahankan arti khususnya dalam tanda kutip ganda (lihat Ekspansi Shell). Backslash mempertahankan arti khusus hanya ketika diikuti oleh salah satu karakter berikut: $
, `
, "
,\
, atau baris baru. Dalam tanda kutip ganda, garis miring terbalik yang diikuti oleh salah satu karakter ini akan dihapus. Garis miring terbalik karakter sebelumnya tanpa arti khusus dibiarkan tidak dimodifikasi. Kutipan ganda dapat dikutip dalam tanda kutip ganda dengan mendahului dengan garis miring terbalik. Jika diaktifkan, perluasan riwayat akan dilakukan kecuali !
kemunculan dalam tanda kutip ganda di-escape menggunakan garis miring terbalik. Garis miring terbalik sebelum !
tidak dihapus. Parameter khusus *
dan @
memiliki arti khusus ketika dalam tanda kutip ganda (lihat Ekspansi Parameter Shell).
Dalam kasus khusus yang ditanyakan dalam pertanyaan, $ COLUMNS adalah variabel khusus yang memiliki properti tidak standar (lihat jawaban lhunath di atas).