Terminal 按终端的条件ZSH_主题
我试图在.zshrc被调用时,根据我运行的终端amulator选择一个特定的主题。为此,我想到:Terminal 按终端的条件ZSH_主题,terminal,zsh,oh-my-zsh,zshrc,terminal-emulator,Terminal,Zsh,Oh My Zsh,Zshrc,Terminal Emulator,我试图在.zshrc被调用时,根据我运行的终端amulator选择一个特定的主题。为此,我想到: current_terminal="$(ps -p$PPID -o cmd=)" function choose_theme { if [ $current_terminal=~'tilix' ]; then echo 'powerlevel9k/powerlevel9k'; else echo 'robbyrussell'; fi
current_terminal="$(ps -p$PPID -o cmd=)"
function choose_theme {
if [ $current_terminal=~'tilix' ];
then echo 'powerlevel9k/powerlevel9k';
else echo 'robbyrussell';
fi
}
ZSH_THEME="$(choose_theme)"
我在运行时没有收到任何错误消息,当我在tilix上打开它时,它与powerlevel9k主题配合得很好,但只是,它似乎不尊重条件,我不知道我的mstake可能在哪里=/
我正在使用的每个终端仿真器中的可变电流_终端的输出为:
Tilix:
/usr/bin/tilix --gapplication-service
默认终端:
/usr/lib/gnome-terminal/gnome-terminal-server
因此,它得到了一些好处,但由于某些原因,设置始终是第一个选项。由于两个原因,这不起作用:
[…]
而不是[…]]
进行检查。区别在于[…]
是ZSH语法的一部分,[
(又称test
)是一个试图模拟外部test
程序的内置命令。这很重要,因为[
不支持=
操作符,它只在[…]
内部可用=~
(与任何其他操作符一样)需要用空格包围。由于Unix shell ZSH在空格上标记命令。在本例中,ZSH我猜ZSH只检查$current\u terminal=~'tilix'
的计算结果是否为非空字符串,而不是将$current\u terminal
与'tilix'
进行比较。情况总是这样,因此您总是这样让我们来看看powerlevel9k主题current_terminal=“$(ps-p$PPID-o cmd=)”
函数选择主题{
如果[$current_terminal=~'tilix']];
然后回应“powerlevel9k/powerlevel9k”;
还有一种是“robbyrussell”;
fi
}
ZSH_主题=“$(选择_主题)”