我很惊讶运行$COMMAND
在 xterm
并跑步xterm -e $COMMAND
。
例如:如果我tmux
在 中作为程序运行xterm
,我得到的行为与tmux
在正在运行的实例中调用时不同xterm
。具体来说,vim
会得到不同的颜色(在正在运行的 中调用xterm
会tmux
根据我的 vim+tmux+xterm 配置运行,而在 中运行时xterm -e tmux
会给出未配置的颜色)。
我并不是想tmux
专门修复这个问题——这不是我来这里的原因。我想知道在运行命令xterm
和通过命令之间何时会出现问题xterm -e $COMMAND
,这样我就可以自己评估是否愿意将其用作xterm
终端应用程序快捷方式的图形前端。
xterm -e $COMMAND
和xterm
-->有什么区别$COMMAND
?
答案1
当你跑步时xterm -e $COMMAND
,它不会运行你的壳(正在执行初始化)。它只是运行$COMMAND
(无需运行壳)。
这手册页说
-e program [ arguments ... ]
This option specifies the program (and its command line
arguments) to be run in the xterm window.
和之后
XTERM_SHELL
is set to the pathname of the program which is invoked. Usually
that is a shell program, e.g., /bin/sh. Since it is not
necessarily a shell program however, it is distinct from "SHELL".