Tüm değişken isimleri ve mevcut değerleri nasıl listelenir?
Yalnızca
$HOME ,
$PWD vb.'yi değil, tanımladığınız diğerleri de içerir.
Tüm değişken isimleri ve mevcut değerleri nasıl listelenir?
Yalnızca
$HOME ,
$PWD vb.'yi değil, tanımladığınız diğerleri de içerir.
Tüm ortam değişkenlerini yazdırmak için bir terminalde aşağıdaki komutu girin:
printenv
Bu komut hakkında daha fazla bilgi için
printenv man sayfasını okuyun.
"Kabuk değişkenlerini" içeren bir listeyi göstermek için sonraki komutu girebilirsiniz:
( set -o posix ; set ) | less
Bu size yalnızca kabuk değişkenlerini değil, ortam değişkenlerini de gösterecektir.
Bu konuyla ilgili daha fazla bilgi için şunu okuyun:
Bu sorunun oldukça eski olduğunu ve yanıtlandığını biliyorum, ancak biraz yararlı bilgiler ekleyebileceğimi düşünüyorum.
Yukarıda açıklanan tüm yöntemlerde, önerilen prosedür:
envkullanarak veya
printenvveya her neyse
Bu çözümlerin problemi, terminalde çalışan kabuğun ortam değişkenlerini görmenizdir. Bir uygulama çalıştırmasına uygun ortam değişkenlerini, örneğin doğrudan grafik arabirimiyle görmüyorsunuz.
Örneğin, ortam değişkenlerini değiştirmek için
~/.profile veya
.bashrc veya
.zshenv (kabuğunuza bağlı olarak) kullanırsanız, klasik dizin dizinleri gibi. .
Uygulamanın kullanabileceği ortam değişkenlerini doğrudan grafik ortamında başlattığınızı görmek için aşağıdakileri yapabilirsiniz (Gnome Kabuğu'nda, tüm diğer DE'de eşdeğer bir yöntem olduğundan eminim):
Artık herhangi bir ortam değişkeni eklemeyen bir kabuklu bir terminaliniz var. Tüm ortam değişkenlerinizi listelemek için
xterm -e bash --noprofile --norc burayı kullanabilirsiniz:
Açıkça, yeni kabuk sistem dosyaları tarafından eklenen ortam değişkenlerine sahip olacak, fakat bu değişkenlerin sistemdeki tüm programlara (miras yoluyla) ulaşılabilir olması gerekir.
Bunu gönderiyorum, çünkü bu hileyi tekrar aramak için dördüncü kez,
env dosyamı kontrol ediyorum. Yani şimdi daha hızlı bulacağım (ve süreçte, başkalarına yardım etmeyi umuyorum ...)
Tüm değişkenleri
declare yerleşiğiyle görebilirsiniz.
declare -p
Yalnızca ortam değişkenleriyle ilgiliyseniz, kullanın
declare -xp
Diğer seçeneklerin neler olduğunu görmek için
help declare dosyasını çalıştırın.
CTRL + ALT + T olan terminaldeki ortam değişkenlerini listelemek için
env komutunu kullanabilirsiniz.
örneğin:
[[email protected] ~]$ env XDG_VTNR=1 SSH_AGENT_PID=3671 XDG_SESSION_ID=3 HOSTNAME=localhost.localdomain IMSETTINGS_INTEGRATE_DESKTOP=yes GPG_AGENT_INFO=/home/raja/.gnupg/S.gpg-agent:3691:1 GLADE_PIXMAP_PATH=: TERM=xterm-256color SHELL=/bin/bash XDG_MENU_PREFIX=xfce- DESKTOP_STARTUP_ID= HISTSIZE=1000 XDG_SESSION_COOKIE=0250277dd805498381e96c05d88068b0-1364679772.845276-1676152201 WINDOWID=65011716 GNOME_KEYRING_CONTROL=/home/raja/.cache/keyring-N3QoQ2 IMSETTINGS_MODULE=none QT_GRAPHICSSYSTEM_CHECKED=1 USER=raja
vb.
Bunun yardımcı olacağını umuyorum.
Compress kullanarak bash:
compgen -v | while read line; do echo $line=${!line};done
env bir POSIX 7 yoludur :
export asdf=qwer env | grep asdf
Örnek çıktı:
asdf=qwer
Sadece dışa aktarılan değişkenleri gösterir: dışa aktarılamayan değişkenler genellikle "ortam değişkenleri" olarak kabul edilmez.
Bunu POSIX olmayan
printenv 'in üzerinde tercih edin. Her ikisi de argüman olmadan aynı şeyi yapıyor gibi görünüyor: İşte
Belirli bir ortam değişkeni istiyorsanız, hepsini
printenv ile yazdırmak yerine, örneğin
echo "$PWD"