Membaca tentang pertanyaan ini: Di zsh bagaimana saya bisa mendaftar semua variabel lingkungan? Saya bertanya-tanya, bagaimana saya bisa mendaftar semua variabel shell ?
Juga, apakah perbedaan antara variabel shell dan variabel lingkungan berlaku untuk shell selain zsh?
Saya terutama tertarik pada Bash dan Zsh, tetapi akan sangat bagus untuk mengetahui bagaimana melakukan ini di shell mainstream lainnya.
declare -p
melakukan hal yang samaset -o posix
tidak ada di zsh;set
tidak menampilkan definisi fungsi.set -o posix
adalah kesalahan sintaksis dalam kebanyakan shell.exec
, variabel shell tidak.Ada banyak alternatif:
printenv
env
ekspor
set
berguna untuk mendapatkan variabel shell juga.
Jika Anda memerlukan info tambahan (bilangan bulat, diekspor), Anda harus menggunakannya
mengeset
ekspor memiliki keuntungan, bahwa hasilnya dapat segera dibaca kembali ke shell.
Terakhir, ada
compgen -v
yang menunjukkan semua variabel, shell dan lingkungan, tanpa nilai atau info tambahan mereka. Anda harus mengulang $ VARIABLE_NAME untuk menemukan nilai variabel. Tapi setidaknya daftarnya sudah lengkap. Itu milik bash , bukan zsh .
sumber
export
tidak memiliki keuntungan lebihset
, setidaknya, ketika datang untuk mengutip untuk masuk kembali shell. Danprintenv
danenv
sama sekali tidak tentang variabel shell, meskipun ini sering bertepatan dengan variabel lingkungan.Dengan
zsh
, Anda dapat menggunakantypeset
, yang memberikan lebih banyak informasi daripadaset
, misalnya jenis variabel. Anda masih dapat memfilter output dengangrep
ataused
, tergantung pada apa yang Anda inginkan. Variabel lingkungan ditandai sepertiexported
pada output.sumber