Apakah ada cara saya bisa mencetak nama variabel beserta nilainya?
j=jjj
k=kkk
l=lll
for i in j k l
do
....
done
Output yang diharapkan (setiap variabel pada baris terpisah):
j = jjj
k = kkk
l = lll
Adakah yang bisa menyarankan cara untuk mendapatkan hasil di atas?
Jawaban:
Secara sederhana:
Hasil:
${!i}
- ekspansi variabel bash / tipuan (mendapat nilai dari nama variabel yang dipegang oleh$i
)sumber
{j,k,l}
singkat dengan{j..l}
juga{j,k,l}
cukupj k l
akan cukup.Jika Anda memiliki bash v4.4 atau yang lebih baru, Anda dapat menggunakan
${VAR@A}
operator ekspansi Parameter.Ini dibahas dalam manual Bash di bagian 3.5.3. Ekspansi Parameter Shell
Maka dengan ini yang bisa Anda lakukan:
Dan hasil Anda seharusnya:
sumber
Atau sedang
zsh
digunakandeclare -p
sumber
Sementara
${!i}
solusi yang lebih bersih dan lebih cepat, untuk kelengkapan, referensi tidak langsung juga dapat diperoleh dengan contoh berikut:Karena itu:
Memberi:
Referensi:
Referensi Tidak Langsung
sumber