`xterm` 内の `xterm -e $COMMAND` と `$COMMAND` の違いは何ですか?

`xterm` 内の `xterm -e $COMMAND` と `$COMMAND` の違いは何ですか?

運営方法の違いに驚きました$COMMAND xtermそして走りますxterm -e $COMMAND

たとえば、tmux内でプログラムとして を実行すると、実行中のインスタンスで をxterm呼び出すときとは異なる動作になります。具体的には、は異なる色になります (実行中の 内で を呼び出すと、 vim+tmux+xterm の構成に従って動作しますが、 で実行すると、構成されていない色になります)。tmuxxtermvimxtermtmuxxterm -e tmux

tmux私は特にその問題を解決しようとしているわけではありません。それが私がここにいる理由ではありません。コマンドを で実行する場合xtermと 経由でコマンドを実行する場合の間で問題が発生するタイミングを正確に知りたいので、ターミナル アプリケーションへのショートカットのグラフィカル フロントエンドとしてxterm -e $COMMAND使用するかどうかを自分で評価できます。xterm

xterm -e $COMMANDxterm-->の違いは何ですか$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".

関連情報