Saya baru saja melompat kapal zsh
dan saya menggunakan Oh my Zsh! tema blinks
. Ini terlihat sangat bagus di Terminal OSX, tetapi terlihat sangat buruk di terminal Android Studio.
Jadi pertanyaan saya, adakah cara untuk memeriksa bahwa sesi ini telah dibuka di Android Studio dan bukan di OSX Terminal dan mengubah zsh
tema sesuai dengan itu?
java
, alihkan tema.Jawaban:
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 jalankanenv > env.studio
. Sekarang, di terminal mana pun, Anda dapat menjalankandiff -dby --suppress-common-lines env.terminal env.studio
(jika Mac OS X diff memiliki opsi-opsi itu; jika tidak-U1
bekerja dengan cukup baik).Sebagai contoh, berikut adalah perbedaan antara
xterm
dankonsole
pada kotak Linux saya (catatan: spasi dimodifikasi agar sesuai pada halaman):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_NAME
akan 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$PPID
mendapatkan PID induk secara langsung, jadi saya curiga Anda memilikinya di zsh juga. Jika tidak,ps
bisa mendapatkannya untuk Anda:ppid=$(ps -o ppid= $$)
. Anda kemudian dapat menjalankan perintah, juga dengan ps:(Anda dapat mencoba
-o comm=
juga).Dalam skrip shell, itu akan terlihat seperti:
Jika Anda perlu melangkah lebih jauh ke atas pohon proses, Anda dapat menggunakan
ps
untuk mendapatkan orang tua orang tua, dll.sumber