Recientemente salté a la nave zsh
y estoy usando el Oh my Zsh! el tema blinks
. Se ve muy bien en la Terminal OSX, pero se ve muy mal en la terminal de Android Studio.
Entonces, mi pregunta es ¿hay alguna manera de verificar que esta sesión se haya abierto en Android Studio y no en la Terminal OSX y cambiar el zsh
tema de acuerdo con eso?
java
, cambie el tema.Respuestas:
Como nadie más te ha dado una respuesta, lo intento a pesar de tener un software completamente diferente. Entonces, esta es una respuesta genérica sobre cómo hacerlo con cualquier software. Hay dos enfoques que vienen a la mente:
1. Diferentes ambientes
Abra la Terminal y corra
env > env.terminal
. Abra Android Studio y ejecúteloenv > env.studio
. Ahora, en cualquier terminal, puede ejecutardiff -dby --suppress-common-lines env.terminal env.studio
(si Mac OS X diff tiene esas opciones; si no-U1
funciona lo suficientemente bien).Como ejemplo, aquí está la diferencia entre
xterm
ykonsole
en mi cuadro de Linux (nota: el espacio modificado para ajustarse a la página):Algunas de esas cosas son claramente ruido de cómo lancé los dos terminales diferentes. Pero otros no lo son. Si quisiera algo solo en XTerm, entonces
if [ -n "$XTERM_VERSION" ]
parecería ser una muy buena manera de hacerlo. Del mismo modo, para Konsole,$KONSOLE_PROFILE_NAME
sería bueno (y probablemente también algunos de los otros).2. Diferentes procesos parentales
Un shell conoce su propia ID de proceso, se puede acceder a través de
$$
. POSIX también tiene$PPID
que obtener el PID principal directamente, por lo que sospecho que también lo tiene en zsh. Si no es así,ps
puede conseguirlo para usted:ppid=$(ps -o ppid= $$)
. Luego puede ejecutar el comando, también con ps:(Puedes intentarlo
-o comm=
también).En un script de shell, se vería algo así como:
Si necesita avanzar más arriba en el árbol de procesos, puede usar
ps
para obtener el padre del padre, etc.fuente