Karena tidak ada orang lain yang memberi Anda jawaban, saya mencoba walaupun memiliki perangkat lunak yang sama sekali berbeda. Jadi ini adalah jawaban umum tentang cara melakukannya dengan perangkat lunak apa pun . Ada dua pendekatan yang muncul di pikiran:
1. Lingkungan yang berbeda
Buka Terminal, dan jalankan env > env.terminal. Buka Android Studio, dan jalankan env > env.studio. Sekarang, di terminal mana pun, Anda dapat menjalankan diff -dby --suppress-common-lines env.terminal env.studio(jika Mac OS X diff memiliki opsi-opsi itu; jika tidak -U1bekerja dengan cukup baik).
Sebagai contoh, berikut adalah perbedaan antara xtermdan konsolepada kotak Linux saya (catatan: spasi dimodifikasi agar sesuai pada halaman):
> 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 <
Beberapa dari hal itu jelas berisik dari cara saya meluncurkan dua terminal yang berbeda. Tetapi yang lain tidak. Jika saya menginginkan sesuatu hanya di XTerm, maka if [ -n "$XTERM_VERSION" ]sepertinya akan menjadi cara yang cukup baik untuk melakukan itu. Demikian pula, untuk Konsole, $KONSOLE_PROFILE_NAMEakan menjadi yang baik (dan mungkin beberapa yang lain juga).
2. Proses induk yang berbeda
Shell mengetahui ID prosesnya sendiri, dapat diakses melalui $$. POSIX juga harus $PPIDmendapatkan PID induk secara langsung, jadi saya curiga Anda memilikinya di zsh juga. Jika tidak, psbisa mendapatkannya untuk Anda: ppid=$(ps -o ppid= $$). Anda kemudian dapat menjalankan perintah, juga dengan ps:
xterm:~$ ps -o args= $PPID
/usr/bin/xterm
konsole:~$ ps -o args= $PPID
/usr/bin/konsole
(Anda dapat mencoba -o comm=juga).
Dalam skrip shell, itu akan terlihat seperti:
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
Jika Anda perlu melangkah lebih jauh ke atas pohon proses, Anda dapat menggunakan psuntuk mendapatkan orang tua orang tua, dll.