चूंकि किसी और ने आपको जवाब नहीं दिया है, मैं पूरी तरह से अलग सॉफ्टवेयर होने के बावजूद कोशिश कर रहा हूं। तो यह किसी भी सॉफ्टवेयर के साथ यह करने के लिए एक सामान्य जवाब है । दो दृष्टिकोण हैं जो मन में आते हैं:
1. विभिन्न वातावरण
टर्मिनल खोलें, और चलाएं env > env.terminal
। Android Studio खोलें, और चलाएं env > env.studio
। अब, या तो टर्मिनल में, आप चला सकते हैं diff -dby --suppress-common-lines env.terminal env.studio
(यदि मैक ओएस एक्स के पास वे विकल्प हैं; यदि -U1
अच्छी तरह से काम नहीं करता है)।
एक उदाहरण के रूप में, यहाँ xterm
और konsole
मेरे लिनक्स बॉक्स के बीच का अंतर है (नोट: पृष्ठ पर फिट होने के लिए संशोधित रिक्ति):
> PROFILEHOME=
> SHELL_SESSION_ID=1e8d5ab2d16641668485f991a1beffe3
> QSG_RENDER_LOOP=
> COLORTERM=truecolor
XTERM_SHELL=/bin/bash <
> KONSOLE_DBUS_SESSION=/Sessions/1
XTERM_VERSION=XTerm(327) | KONSOLE_DBUS_WINDOW=/Windows/1
TERM=xterm <
> TERM=xterm-256color
> KONSOLE_DBUS_SERVICE=:1.1514
> QMLSCENE_DEVICE=
> KONSOLE_PROFILE_NAME=Default
> COLORFGBG=15;0
WINDOWID=83886094 | WINDOWID=115343366
XAUTHORITY=/tmp/xauth-1000-_0 | XAUTHORITY=/home/anthony/.Xauthority
KDED_STARTED_BY_KDEINIT=1 <
XTERM_LOCALE=en_US.UTF-8 <
उस सामान में से कुछ स्पष्ट रूप से शोर है कि मैंने दो अलग-अलग टर्मिनलों को कैसे लॉन्च किया। लेकिन अन्य नहीं हैं। अगर मैं केवल एक्सटर्म में कुछ चाहता था, तो if [ -n "$XTERM_VERSION" ]
ऐसा करने के लिए एक बहुत अच्छा तरीका प्रतीत होगा। इसी तरह, कोनो कंसोल के लिए, $KONSOLE_PROFILE_NAME
यह एक अच्छा (और शायद कुछ अन्य लोगों का भी) होगा।
2. विभिन्न माता-पिता की प्रक्रिया
एक शेल को अपनी प्रक्रिया आईडी पता है, इसके माध्यम से पहुँचा जा सकता है $$
। POSIX को भी $PPID
सीधे माता-पिता PID प्राप्त करना है, इसलिए मुझे संदेह है कि आपके पास zsh में भी है। यदि नहीं, ps
तो यह आपके लिए प्राप्त कर सकता है ppid=$(ps -o ppid= $$)
:। इसके बाद आप ps के साथ कमांड रन कर सकते हैं:
xterm:~$ ps -o args= $PPID
/usr/bin/xterm
konsole:~$ ps -o args= $PPID
/usr/bin/konsole
(आप भी कोशिश कर सकते हैं -o comm=
)।
एक शेल स्क्रिप्ट में, यह कुछ इस तरह दिखेगा:
ppid=$(ps -o ppid= $$) # if you don't have PPID for some reason
if [ "$(ps -o args= $ppid)" = "/usr/bin/xterm" ]; then
echo "do xterm stuff"
fi
यदि आपको प्रक्रिया पेड़ को और ऊपर जाने की आवश्यकता है, तो आप ps
माता-पिता के माता-पिता आदि को प्राप्त करने के लिए उपयोग कर सकते हैं ।