Dal momento che nessun altro ti ha dato una risposta, ci sto provando nonostante abbia un software completamente diverso. Quindi questa è una risposta generica su come farlo con qualsiasi software. Ci sono due approcci che vengono in mente:
1. Ambienti diversi
Apri Terminale ed esegui env > env.terminal
. Apri Android Studio ed esegui env > env.studio
. Ora, in entrambi i terminali, puoi eseguire diff -dby --suppress-common-lines env.terminal env.studio
(se Mac OS X diff ha queste opzioni; se non -U1
funziona abbastanza bene).
Ad esempio, ecco la differenza tra xterm
e konsole
sulla mia scatola di Linux (nota: spaziatura modificata per adattarsi alla pagina):
> 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 <
Alcune di queste cose sono chiaramente rumorose da come ho lanciato i due diversi terminali. Ma altri no. Se volessi qualcosa solo in XTerm, if [ -n "$XTERM_VERSION" ]
sembrerebbe essere un buon modo per farlo. Allo stesso modo, per Konsole, $KONSOLE_PROFILE_NAME
sarebbe una buona idea (e probabilmente anche alcune delle altre).
2. Diversi processi padre
Una shell conosce il proprio ID processo, a cui è possibile accedere tramite $$
. POSIX deve anche $PPID
ottenere direttamente il PID genitore, quindi sospetto che lo possiate anche in zsh. In caso contrario, ps
si può ottenere per voi: ppid=$(ps -o ppid= $$)
. È quindi possibile ottenere il comando eseguito, anche con ps:
xterm:~$ ps -o args= $PPID
/usr/bin/xterm
konsole:~$ ps -o args= $PPID
/usr/bin/konsole
(Puoi anche provare -o comm=
).
In uno script di shell, sarebbe simile a:
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 hai bisogno di andare oltre l'albero del processo, puoi usare ps
per ottenere il genitore del genitore, ecc.