私は最近船に飛び乗っzshて、Oh my Zshを使っています!テーマblinks。OSXターミナルでは非常にきれいに見えますが、Android Studioのターミナルでは非常に悪く見えます。
だから私の質問は、このセッションがOSXターミナルではなくAndroid Studioで開かれていることを確認し、zshそれに応じてテーマを変更する方法はありますか?


java、テーマを切り替えます。
私は最近船に飛び乗っzshて、Oh my Zshを使っています!テーマblinks。OSXターミナルでは非常にきれいに見えますが、Android Studioのターミナルでは非常に悪く見えます。
だから私の質問は、このセッションがOSXターミナルではなくAndroid Studioで開かれていることを確認し、zshそれに応じてテーマを変更する方法はありますか?


java、テーマを切り替えます。
回答:
他の誰もあなたに答えを与えていないので、私は完全に異なるソフトウェアを持っているにもかかわらず試みています。これはでそれを行う方法についての一般的な答えである任意のソフトウェア。思い浮かぶ2つのアプローチがあります。
ターミナルを開き、を実行しenv > env.terminalます。Android Studioを開き、を実行しenv > env.studioます。これで、どちらの端末でも実行できますdiff -dby --suppress-common-lines env.terminal env.studio(Mac OS X diffにこれらのオプションがある場合、-U1十分に機能しない場合)。
例として、ここでの違いであるxtermとkonsole私のLinuxボックス(:間隔ページに収まるように修正ノート)には:
> 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 $PPIDは親PIDを直接取得する必要があるため、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、親の親などを取得するために使用できます。