В чем разница между `xterm -e $COMMAND` и `$COMMAND` в `xterm`?

В чем разница между `xterm -e $COMMAND` и `$COMMAND` в `xterm`?

Я удивлен, что существуют различия между управлением$COMMAND в xtermи бег xterm -e $COMMAND.

Например: если я запускаю tmuxкак программу в xterm, я получаю другое поведение, чем когда я вызываю tmuxв работающем xtermэкземпляре. В частности, vimполучает другие цвета (вызов в работающем xterm' s tmuxведет себя в соответствии с моей конфигурацией vim+tmux+xterm, тогда как запуск в ' xterm -e tmuxдаёт ненастроенные цвета).

Я не пытаюсь исправить tmuxконкретно эту штуку - я здесь не для этого. Я хочу точно знать, когда у меня будут проблемы между запуском команды в xtermи запуском команды через, xterm -e $COMMANDчтобы я мог сам оценить, стоит ли мне xtermвообще использовать графический интерфейс для ярлыков к терминальным приложениям.

В чем разница между xterm -e $COMMANDи xterm--> $COMMAND?

решение1

Когда ты бежишьxterm -e $COMMAND, он не запускает вашоболочка(который делает инициализацию). Он просто запускается$COMMAND(без запускаоболочка).

Theстраница руководстваговорит

   -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".

Связанный контент