Ich bin kürzlich zum Schiff gesprungen zsh
und benutze das Oh my Zsh! Thema blinks
. Im OSX-Terminal sieht es sehr gut aus, aber im Android-Studio-Terminal sieht es sehr schlecht aus.
Meine Frage ist also, ob es eine Möglichkeit gibt, zu überprüfen, ob diese Sitzung in Android Studio und nicht im OSX-Terminal geöffnet wurde, und das zsh
Thema entsprechend zu ändern .
java
.Antworten:
Da Ihnen sonst niemand eine Antwort gegeben hat, versuche ich es trotz völlig anderer Software. Das ist also eine generische Antwort darauf, wie man es mit jeder Software macht. Es gibt zwei Ansätze, die in den Sinn kommen:
1. Unterschiedliche Umgebungen
Öffnen Sie das Terminal und führen Sie es aus
env > env.terminal
. Öffnen Sie Android Studio und führen Sie es ausenv > env.studio
. Jetzt können Sie in beiden Terminals ausführendiff -dby --suppress-common-lines env.terminal env.studio
(wenn Mac OS X diff diese Optionen hat; wenn dies nicht-U1
gut genug funktioniert).Als Beispiel ist hier der Unterschied zwischen
xterm
undkonsole
auf meiner Linux-Box (Hinweis: Abstand geändert, um auf die Seite zu passen):Einiges davon ist eindeutig ein Geräusch von dem Start der beiden verschiedenen Terminals. Andere aber nicht. Wenn ich etwas nur in XTerm wollte, dann
if [ -n "$XTERM_VERSION" ]
wäre das anscheinend ein ziemlich guter Weg, dies zu tun. Ähnlich$KONSOLE_PROFILE_NAME
wäre es für Konsole gut (und wahrscheinlich auch für einige andere).2. Unterschiedliche übergeordnete Prozesse
Eine Shell kennt ihre eigene Prozess-ID, über die auf sie zugegriffen werden kann
$$
. POSIX muss auch$PPID
die übergeordnete PID direkt abrufen, also habe ich den Verdacht, dass Sie diese auch in zsh haben. Wenn nicht,ps
kann es für Sie:ppid=$(ps -o ppid= $$)
. Sie können dann den Befehl ausführen lassen, auch mit ps:(Du kannst es auch versuchen
-o comm=
).In einem Shell-Skript würde es ungefähr so aussehen:
Wenn Sie den Prozessbaum weiter nach oben verschieben möchten, können Sie
ps
den übergeordneten Teil des übergeordneten Teils usw. abrufen.quelle