나는 최근에 배를 타고 오 오 내 Zsh를zsh
사용하고 있습니다! 테마 blinks
. OSX 터미널에서는 매우 멋지지만 Android Studio의 터미널에서는 매우 나빠 보입니다.
그래서 내 질문은 이 세션이 OSX 터미널이 아닌 Android Studio에서 열렸는지 확인하고 zsh
그에 따라 테마를 변경하는 방법 이 있습니까?
java
테마를 전환하십시오.
나는 최근에 배를 타고 오 오 내 Zsh를zsh
사용하고 있습니다! 테마 blinks
. OSX 터미널에서는 매우 멋지지만 Android Studio의 터미널에서는 매우 나빠 보입니다.
그래서 내 질문은 이 세션이 OSX 터미널이 아닌 Android Studio에서 열렸는지 확인하고 zsh
그에 따라 테마를 변경하는 방법 이 있습니까?
java
테마를 전환하십시오.
답변:
아무도 당신에게 답을주지 않았으므로 완전히 다른 소프트웨어에도 불구하고 노력하고 있습니다. 따라서 이것은 모든 소프트웨어 로 수행하는 방법에 대한 일반적인 대답입니다 . 두 가지 접근 방식이 있습니다.
터미널을 열고을 실행하십시오 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
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 <
그 중 일부는 두 개의 다른 터미널을 시작한 방식에서 분명히 소음입니다. 그러나 다른 사람들은 그렇지 않습니다. XTerm에서만 무언가를 원한다면 if [ -n "$XTERM_VERSION" ]
그렇게 할 수있는 좋은 방법 인 것 같습니다. 마찬가지로 Konsole의 $KONSOLE_PROFILE_NAME
경우 좋은 것 (그리고 아마도 다른 것 중 일부) 일 것입니다.
쉘은 자체 프로세스 ID를 알고 있으며를 통해 액세스 할 수 있습니다 $$
. POSIX는 $PPID
부모 PID를 직접 가져와야하므로 zsh에도 해당 PID가 있다고 생각합니다. 그렇지 않은 경우 다음 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
부모의 부모 등을 얻는 데 사용할 수 있습니다 .