防止 TMUX 在 intellij 终端中启动
Prevent TMUX from starting in intellij terminal
所以我有以下片段:
if [[ ps -p$PPID | grep 'java' == '' ]]; then
ZSH_TMUX_AUTOSTART=true;
fi
其中returns出现以下错误:
/home/otis/.zshrc:8: parse error: condition expected: ps
想法是,如果 ps -p$PPID | grep 'java'
returns 什么都没有,则设置 ZSH_TMUX_AUTOSTART=true
。
我想这样做的原因是我想在我的 gnome 终端中自动启动 tmux 而不是在我的 intellij 终端中如果我 运行 这个命令在 gnome 中它 returns 什么都没有,如果我 运行 来自 intellij 它 returns java
.
所以逻辑基本上是可靠的,如果没有任何返回总是启动 tmux,但我不擅长 shell 所以任何帮助将不胜感激。
干杯。
您收到错误消息的原因是条件表达式 ([[ … ]]
) 在 ps
之后需要一个条件,它需要一个字符串而不是一个命令。您必须将命令包装在 $(…)
中才能在条件表达式中使用其输出。或者,您可以只使用 grep
的退出代码来确定是否找到 "java",这样就不需要条件表达式了。
if ! ps -p $PPID | grep -q java; then
ZSH_TMUX_AUTOSTART=true;
fi
请注意,检查的 return 值与您最初的预期相反。因此,如果退出代码为 false
,则 !
变为 return true
,反之亦然。 -q
只是抑制 grep
.
的输出
我意识到这是一个旧线程,TERMINAL_EMULATOR 变量在原始 post 时可能不一样,但我在 OSX 上用以下方法解决了这个问题:
if [ "$TERMINAL_EMULATOR" != "JetBrains-JediTerm"]
then
ZSH_TMUX_AUTOSTART=true
fi
在您的项目中,在“设置”>“工具”>“终端”下,将环境变量设置为 INSIDE_EMACS=true
。
所以我有以下片段:
if [[ ps -p$PPID | grep 'java' == '' ]]; then
ZSH_TMUX_AUTOSTART=true;
fi
其中returns出现以下错误:
/home/otis/.zshrc:8: parse error: condition expected: ps
想法是,如果 ps -p$PPID | grep 'java'
returns 什么都没有,则设置 ZSH_TMUX_AUTOSTART=true
。
我想这样做的原因是我想在我的 gnome 终端中自动启动 tmux 而不是在我的 intellij 终端中如果我 运行 这个命令在 gnome 中它 returns 什么都没有,如果我 运行 来自 intellij 它 returns java
.
所以逻辑基本上是可靠的,如果没有任何返回总是启动 tmux,但我不擅长 shell 所以任何帮助将不胜感激。
干杯。
您收到错误消息的原因是条件表达式 ([[ … ]]
) 在 ps
之后需要一个条件,它需要一个字符串而不是一个命令。您必须将命令包装在 $(…)
中才能在条件表达式中使用其输出。或者,您可以只使用 grep
的退出代码来确定是否找到 "java",这样就不需要条件表达式了。
if ! ps -p $PPID | grep -q java; then
ZSH_TMUX_AUTOSTART=true;
fi
请注意,检查的 return 值与您最初的预期相反。因此,如果退出代码为 false
,则 !
变为 return true
,反之亦然。 -q
只是抑制 grep
.
我意识到这是一个旧线程,TERMINAL_EMULATOR 变量在原始 post 时可能不一样,但我在 OSX 上用以下方法解决了这个问题:
if [ "$TERMINAL_EMULATOR" != "JetBrains-JediTerm"]
then
ZSH_TMUX_AUTOSTART=true
fi
在您的项目中,在“设置”>“工具”>“终端”下,将环境变量设置为 INSIDE_EMACS=true
。