我很驚訝運行之間存在差異$COMMAND
在 xterm
並運行xterm -e $COMMAND
。
舉個例子:如果我tmux
在 中作為程式運行,我會得到與在正在運行的實例中xterm
呼叫時不同的行為。具體來說,獲得不同的顏色(在運行中調用的行為根據我的 vim+tmux+xterm 配置,而在 a 中運行則給出未配置的顏色)。tmux
xterm
vim
xterm
tmux
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".