最近、船をzsh
にジャンプし、 Oh my Zsh! テーマblinks
を使用しています。 OSXターミナルでは見た目はとても良いですが、Android Studioのターミナルでは見た目がとても悪いです。
だから私の質問はこのセッションがAndroid Studioで開かれているのではなく、 OSXターミナルとそれに応じてzsh
テーマを変更しますか?
他の誰からも答えが得られなかったので、まったく異なるソフトウェアを使用しているにもかかわらず、私は試みています。したがって、これはanyソフトウェアでそれを行う方法に関する一般的な答えです。頭に浮かぶ2つのアプローチがあります。
ターミナルを開き、_env > env.terminal
_を実行します。 Android Studioを開き、_env > env.studio
_を実行します。これで、どちらのターミナルでも_diff -dby --suppress-common-lines env.terminal env.studio
_を実行できます(Mac OS X diffにこれらのオプションがある場合。そうでない場合は_-U1
_は十分に機能します)。
例として、私のLinuxボックスでのxterm
とkonsole
の違いは次のとおりです(注:ページに合わせて間隔が変更されています):
_ > 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 <
_
その中には、2つの異なる端末を起動したときのノイズが含まれています。しかし、他はそうではありません。 XTermでのみ何かが必要な場合、_if [ -n "$XTERM_VERSION" ]
_はそれを行うにはかなり良い方法のようです。同様に、Konsoleの場合、_$KONSOLE_PROFILE_NAME
_が適切です(おそらく他のいくつかも同様です)。
シェルは自身のプロセスIDを知っており、_$$
_を介してアクセスできます。 POSIXには、親PIDを直接取得するための_$PPID
_もあるので、zshにもあると思います。そうでない場合は、ps
で取得できます:ppid=$(ps -o ppid= $$)
。その後、psでもコマンドを実行できます。
_xterm:~$ ps -o args= $PPID
/usr/bin/xterm
konsole:~$ ps -o args= $PPID
/usr/bin/konsole
_
(_-o comm=
_も試すことができます)。
シェルスクリプトでは、次のようになります。
_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
_
プロセスツリーをさらに上に移動する必要がある場合は、ps
を使用して親の親などを取得できます。