Como ninguém mais lhe deu uma resposta, estou tentando, apesar de ter um software completamente diferente. Portanto, esta é uma resposta genérica sobre como fazê-lo com qualquer software. Há duas abordagens que vêm à mente:
1. Ambientes diferentes
Abra o Terminal e execute env > env.terminal
. Abra o Android Studio e execute env > env.studio
. Agora, em qualquer terminal, você pode executar diff -dby --suppress-common-lines env.terminal env.studio
(se o diff do Mac OS X tiver essas opções; se não -U1
funcionar bem o suficiente).
Como exemplo, aqui está a diferença entre xterm
e konsole
na minha caixa Linux (nota: espaçamento modificado para caber na 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 <
Algumas dessas coisas são claramente ruídos de como lancei os dois terminais diferentes. Mas outros não são. Se eu quisesse algo apenas no XTerm, então if [ -n "$XTERM_VERSION" ]
seria uma boa maneira de fazer isso. Da mesma forma, para o Konsole, $KONSOLE_PROFILE_NAME
seria bom (e provavelmente alguns outros também).
2. Processos pai diferentes
Um shell conhece seu próprio ID de processo e pode ser acessado via $$
. O POSIX também precisa $PPID
obter o PID pai diretamente, então eu suspeito que você o tenha no zsh também. Se não, ps
pode obtê-lo para você: ppid=$(ps -o ppid= $$)
. Você pode então executar o comando, também com o ps:
xterm:~$ ps -o args= $PPID
/usr/bin/xterm
konsole:~$ ps -o args= $PPID
/usr/bin/konsole
(Você pode tentar -o comm=
também).
Em um script de shell, seria algo 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
Se você precisar ir além na árvore de processos, poderá usar ps
para obter o pai do pai, etc.