Sự khác biệt giữa `xterm -e $ Mission` và` $ Mission` trong` xterm` là gì?


0

Tôi ngạc nhiên rằng có sự khác biệt giữa chạy $COMMAND trong xterm và chạy xterm -e $COMMAND.

Ví dụ: nếu tôi chạy tmuxnhư một chương trình bên trong xterm, tôi có hành vi khác với khi tôi gọi tmuxtrong một phiên bản đang chạy xterm. Cụ thể, vimđược màu sắc khác nhau (cách gọi trong một chạy xterm's tmuxcư xử theo cấu hình vim + tmux + xterm của tôi, trong khi chạy trong một xterm -e tmuxcho màu sắc chưa được cấu hình).

Tôi không cố gắng sửa chữa tmuxđiều cụ thể - đó không phải là lý do tại sao tôi ở đây. Tôi muốn biết chính xác khi nào tôi gặp vấn đề giữa việc chạy lệnh xtermvà chạy lệnh thông qua xterm -e $COMMANDđể tôi có thể tự đánh giá xem mình có quan tâm đến việc sử dụng xtermlàm giao diện đồ họa cho các phím tắt cho các ứng dụng đầu cuối hay không.

Sự khác biệt giữa xterm -e $COMMANDxterm-> là $COMMANDgì?


Hãy thử tùy chọn "-ls" của xterm?
Hannu

Huh, tôi quên đề cập rằng tôi đã thử điều đó ... Nó vẫn dẫn đến một sự khác biệt giữa -evà lồng nhau.
người dùng

Sự khác biệt rõ ràng là trong môi trường thời gian chạy. Tôi đã mong đợi -ls để tạo sự khác biệt. Làm thế nào về ví dụ xterm -e bash -lc $COMMAND?
Hannu

Không có xúc xắc cho xterm -e bash -lc $COMMAND(nơi $COMMANDđược tmuxmô tả ở trên và sự khác biệt được quan sát thấy trong màu sắc của vim; tôi chưa thấy sự khác biệt ở nơi nào khác ...). Vẫn có một sự khác biệt trong hành vi giữa nó và xterm-> $COMMAND. Tôi cũng đã thử sử dụng shell đăng nhập của tôi zshthay cho bash. Tôi bắt đầu để nghiêng về phía này chỉ là có thể trả lời bằng cách lặn xuống xterm's nguồn, mà dường như không có giá trị nó ...
sử dụng

Câu trả lời:


0

Khi bạn chạy xterm -e $COMMAND, nó không chạy shell của bạn (đang thực hiện khởi tạo). Nó chỉ chạy $COMMAND(không chạy vỏ ).

Các trang hướng dẫn nói

   -e program [ arguments ... ]
           This option specifies the program (and its command line
           arguments) to be run in the xterm window.

sau này

   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".
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.