J'ai récemment quitté le navire zsh
et j'utilise le Oh my Zsh! thème blinks
. Il a l'air très bien dans le terminal OSX, mais il a l'air très mauvais dans le terminal d'Android Studio.
Ma question est donc de savoir s'il existe un moyen de vérifier que cette session a été ouverte dans Android Studio et non dans le terminal OSX et de changer le zsh
thème en fonction de cela?
java
, changez de thème.Réponses:
Puisque personne d'autre ne vous a donné de réponse, j'essaie malgré le fait d'avoir un logiciel complètement différent. C'est donc une réponse générique sur la façon de le faire avec n'importe quel logiciel. Deux approches me viennent à l'esprit:
1. Différents environnements
Ouvrez Terminal et exécutez
env > env.terminal
. Ouvrez Android Studio et exécutezenv > env.studio
. Maintenant, dans l'un ou l'autre terminal, vous pouvez exécuterdiff -dby --suppress-common-lines env.terminal env.studio
(si Mac OS X diff a ces options; sinon-U1
fonctionne assez bien).A titre d'exemple, voici la différence entre
xterm
etkonsole
sur ma box Linux (note: espacement modifié pour tenir sur la page):Certaines de ces choses sont clairement du bruit de la façon dont j'ai lancé les deux terminaux différents. Mais d'autres ne le sont pas. Si je voulais quelque chose uniquement dans XTerm,
if [ -n "$XTERM_VERSION" ]
cela semblerait être un très bon moyen de le faire. De même, pour Konsole, ce$KONSOLE_PROFILE_NAME
serait un bon (et probablement quelques-uns des autres aussi).2. Différents processus parents
Un shell connaît son propre ID de processus, il est accessible via
$$
. POSIX doit également$PPID
obtenir le PID parent directement, donc je soupçonne que vous l'avez aussi en zsh. Dans le cas contraire,ps
peut l' obtenir pour vous:ppid=$(ps -o ppid= $$)
. Vous pouvez ensuite exécuter la commande, également avec ps:(Vous pouvez également essayer
-o comm=
).Dans un script shell, cela ressemblerait à quelque chose comme:
Si vous avez besoin d'aller plus loin dans l'arborescence des processus, vous pouvez utiliser
ps
pour obtenir le parent du parent, etc.la source