Como nadie más te ha dado una respuesta, lo intento a pesar de tener un software completamente diferente. Entonces, esta es una respuesta genérica sobre cómo hacerlo con cualquier software. Hay dos enfoques que vienen a la mente:
1. Diferentes ambientes
Abra la Terminal y corra env > env.terminal
. Abra Android Studio y ejecútelo env > env.studio
. Ahora, en cualquier terminal, puede ejecutar diff -dby --suppress-common-lines env.terminal env.studio
(si Mac OS X diff tiene esas opciones; si no -U1
funciona lo suficientemente bien).
Como ejemplo, aquí está la diferencia entre xterm
y konsole
en mi cuadro de Linux (nota: el espacio modificado para ajustarse a la página):
> 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 <
Algunas de esas cosas son claramente ruido de cómo lancé los dos terminales diferentes. Pero otros no lo son. Si quisiera algo solo en XTerm, entonces if [ -n "$XTERM_VERSION" ]
parecería ser una muy buena manera de hacerlo. Del mismo modo, para Konsole, $KONSOLE_PROFILE_NAME
sería bueno (y probablemente también algunos de los otros).
2. Diferentes procesos parentales
Un shell conoce su propia ID de proceso, se puede acceder a través de $$
. POSIX también tiene $PPID
que obtener el PID principal directamente, por lo que sospecho que también lo tiene en zsh. Si no es así, ps
puede conseguirlo para usted: ppid=$(ps -o ppid= $$)
. Luego puede ejecutar el comando, también con ps:
xterm:~$ ps -o args= $PPID
/usr/bin/xterm
konsole:~$ ps -o args= $PPID
/usr/bin/konsole
(Puedes intentarlo -o comm=
también).
En un script de shell, se vería algo así como:
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
Si necesita avanzar más arriba en el árbol de procesos, puede usar ps
para obtener el padre del padre, etc.