सभी चर नामों और उनके वर्तमान मूल्यों को कैसे सूचीबद्ध करें?

सभी चर नामों और उनके वर्तमान मूल्यों को कैसे सूचीबद्ध करें?

न केवल सहित $HOME, $PWD आदि लेकिन कोई अन्य जिसे आपने परिभाषित किया है ।

बैश के लिए: (उबंटू में मानक खोल)

सभी पर्यावरण चर प्रिंट करने के लिए टर्मिनल में निम्न कमांड दर्ज करें:

printenv

इस आदेश के बारे में अधिक जानकारी के लिए, पढ़ें printenv मैन पेज.


"शेल चर" सहित एक सूची दिखाने के लिए आप अगली कमांड दर्ज कर सकते हैं:

( set -o posix ; set ) | less

यह आपको दिखाएगा इतना ही नहीं शेल चर, लेकिन पर्यावरण चर भी ।

इस विषय से संबंधित अधिक जानकारी के लिए पढ़ें:


जेडएसएच के लिए: (एक उन्नत खोल)

निम्न आदेश का उपयोग करें:

( setopt posixbuiltin; set; ) | less

जेडएसएच विकल्पों के बारे में अधिक जानकारी के लिए, देखें zshoptions मैन पेज.

आप के साथ सभी चर देख सकते हैं declare बिल्टिन।

declare -p

यदि आप केवल पर्यावरण चर में रुचि रखते हैं, तो उपयोग करें

declare -xp

भागो help declare यह देखने के लिए कि अन्य विकल्प क्या हैं ।

मुझे पता है कि यह प्रश्न काफी पुराना है और उत्तर दिया गया है, लेकिन मुझे लगता है कि मैं थोड़ी उपयोगी जानकारी जोड़ सकता हूं ।

ऊपर वर्णित सभी विधियों में, सुझाई गई प्रक्रिया है:

  • एक टर्मिनल लॉन्च करें
  • पर्यावरण चर का उपयोग करके दिखाएं env, याprintenv या जो भी हो

इन समाधानों की समस्या यह है कि आप पर्यावरण चर देख रहे हैं टर्मिनल में चल रहे शेल का. आप किसी एप्लिकेशन रन के लिए उपलब्ध पर्यावरण चर नहीं देख रहे हैं, उदाहरण के लिए, सीधे ग्राफिक इंटरफ़ेस द्वारा ।

यह ध्यान देने योग्य है अगर, उदाहरण के लिए, आप अपने ~/.profile, या .bashrc, या .zshenv (आपके खोल के आधार पर) पर्यावरण चर को संशोधित करने के लिए --- पथ के लिए निर्देशिकाओं के क्लासिक जोड़ की तरह ।

ग्राफिक वातावरण में सीधे शुरू किए गए एप्लिकेशन के लिए उपलब्ध पर्यावरण चर को देखने के लिए, आप निम्न कार्य कर सकते हैं (गनोम शेल में, मुझे यकीन है कि अन्य सभी डी में एक समान विधि है):

  • प्रेस एएलटी-एफ 2
  • कमांड चलाएं xterm -e bash --noprofile --norc

(या, यदि आपके पास नहीं है xterm, gnome-terminal -- bash --noprofile --norc --- टिप्पणी के लिए @माइक नकिस को धन्यवाद) ।

अब आपके पास एक शेल के साथ एक टर्मिनल है जिसमें कोई पर्यावरण चर नहीं जोड़ा गया है । आप उपयोग कर सकते हैं env यहां अपने सभी पर्यावरण चर सूचीबद्ध करने के लिए:

Example of the bare shell

जाहिर है कि नए शेल में सिस्टम फ़ाइलों द्वारा जोड़े गए पर्यावरण चर होंगे, लेकिन सिस्टम में सभी कार्यक्रमों के लिए चर (विरासत द्वारा) उपलब्ध होना चाहिए ।

मैं इसे पोस्ट कर रहा हूं क्योंकि यह चौथी बार है जब मुझे इस ट्रिक को फिर से खोजना है, मेरी जाँच करना .pam_environment फ़ाइल। तो अब मैं इसे तेजी से पाऊंगा (और इस प्रक्रिया में, मुझे उम्मीद है कि किसी और की मदद करेंगे । ..)

टर्मिनल में पर्यावरण चर को सूचीबद्ध करने के लिए CTRL+ALT+T आप उपयोग कर सकते हैं env कमान।

उदाहरण के लिए :

[raja@localhost ~]$ envXDG_VTNR=1SSH_AGENT_PID=3671XDG_SESSION_ID=3HOSTNAME=localhost.localdomainIMSETTINGS_INTEGRATE_DESKTOP=yesGPG_AGENT_INFO=/home/raja/.gnupg/S.gpg-agent:3691:1GLADE_PIXMAP_PATH=:TERM=xterm-256colorSHELL=/bin/bashXDG_MENU_PREFIX=xfce-DESKTOP_STARTUP_ID=HISTSIZE=1000XDG_SESSION_COOKIE=0250277dd805498381e96c05d88068b0-1364679772.845276-1676152201WINDOWID=65011716GNOME_KEYRING_CONTROL=/home/raja/.cache/keyring-N3QoQ2IMSETTINGS_MODULE=noneQT_GRAPHICSSYSTEM_CHECKED=1USER=raja

आदि ।

आशा है कि मदद करता है ।

कॉम्पजेन का उपयोग करके बैश में:

compgen -v | while read line; do echo $line=${!line};done  

यदि आप उन सभी को प्रिंट करने के बजाय एक विशिष्ट पर्यावरण चर चाहते हैं printenv, आप उदाहरण के लिए इसे करके प्रिंट कर सकते हैं echo "$PWD"

यहां अधिकांश समाधान या तो केवल पर्यावरण चर प्रिंट करते हैं, या दोष यह है कि एनवी या (सेट-ओ पॉज़िक्स; सेट) आसानी से पार्स करने योग्य रूप में मान प्रिंट नहीं करते हैं (चर ए=$'ए\आर\एनबी' प्रिंट करने का प्रयास करें, इसमें कई लाइनें हैं । ..).

यहां एक फ़ंक्शन है जो पॉज़िक्स बच गए फॉर्म में सभी चर, प्रति पंक्ति एक चर प्रिंट करेगा (सरल पाठ चर के लिए ठीक से काम करता है, सरणी के लिए काम नहीं करता है):

function dump_vars {    local VARNAME    compgen -v | while read -r VARNAME; do        printf "$VARNAME=%q\n" "${!VARNAME}"    done}

कॉम्पजेन-वी के उपयोग को इंगित करने के लिए @टीएमगोब्लिन के लिए धन्यवाद ।

एनवी एक है पॉज़िक्स 7 वे:

export asdf=qwerenv | grep asdf

नमूना आउटपुट:

asdf=qwer

यह केवल निर्यात किए गए चर दिखाता है: गैर-निर्यात किए गए चर को आमतौर पर "पर्यावरण चर"नहीं माना जाता है ।

उस पर पसंद करते हैं printenv, जो पॉज़िक्स नहीं है । दोनों बिना तर्क के एक ही काम करते प्रतीत होते हैं: https://unix.stackexchange.com/questions/123473/what-is-the-difference-between-env-and-printenv

प्रिंटेनव केवल निर्यात किए गए चर को सूचीबद्ध करता है,command+alt+$("\ई$": पूर्ण-चर )सभी चर सूचीबद्ध करेगा ।

  • printenv सभी वैश्विक पर्यावरण चर दिखाएगा
  • एनवी, लॉगिन संशोधन के बाद वैश्विक पर्यावरण चर
  • सेट, सत्र के सापेक्ष सभी स्थानीय पर्यावरण चर प्रदर्शित करेगा (आमतौर पर स्थानीय संस्करण वैश्विक + सत्र का विशेष है)

आपने गलत उत्तर स्वीकार कर लिया है । “प्रिंटेनव” केवल आपको पर्यावरण चर देता है । यदि आप वास्तव में अपने शेल में वर्तमान में घोषित सभी चर चाहते हैं, तो “डिक्लेयर-पी” या "टाइपसेट-पी"का उपयोग करें ।