Başka hiç kimse size bir cevap vermediğinden, tamamen farklı bir yazılım olmasına rağmen deniyorum. Bu, herhangi bir yazılımla nasıl yapılacağı konusunda genel bir cevaptır . Akla gelen iki yaklaşım vardır:
1. Farklı ortamlar
Terminal'i açın ve çalıştırın env > env.terminal
. Android Studio'yu açın ve çalıştırın env > env.studio
. Şimdi, her iki terminalde de çalıştırabilirsiniz diff -dby --suppress-common-lines env.terminal env.studio
(Mac OS X diff bu seçeneklere sahipse; -U1
yeterince iyi değilse).
Örnek olarak, Linux kutum arasında xterm
ve konsole
Linux kutumdaki fark (not: sayfaya sığacak şekilde değiştirildi):
> 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 <
Bu şeylerden bazıları, iki farklı terminali başlattığımdan açıkça geliyor. Ama diğerleri değil. Sadece XTerm'de bir şey isteseydim, if [ -n "$XTERM_VERSION" ]
bunu yapmanın oldukça iyi bir yolu olurdu. Benzer şekilde, Konsole için, $KONSOLE_PROFILE_NAME
iyi bir tane olurdu (ve muhtemelen diğerlerinden birkaçı).
2. Farklı ebeveyn süreçleri
Bir kabuk kendi işlem kimliğini bilir, ona erişilebilir $$
. POSIX ayrıca $PPID
üst PID'yi doğrudan almak zorundadır, bu yüzden zsh'da da olduğundan şüpheleniyorum. Değilse, ps
sizin için alabilirim: ppid=$(ps -o ppid= $$)
. Daha sonra komutu da ps ile çalıştırabilirsiniz:
xterm:~$ ps -o args= $PPID
/usr/bin/xterm
konsole:~$ ps -o args= $PPID
/usr/bin/konsole
(Siz de deneyebilirsiniz -o comm=
).
Bir kabuk komut dosyasında şöyle görünür:
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
İşlem ağacında daha ileri gitmeniz ps
gerekiyorsa, ebeveynin ebeveynini vb. Almak için kullanabilirsiniz .