Terminal 具有不同VirtualNV的两个XTerm

Terminal 具有不同VirtualNV的两个XTerm,terminal,ubuntu-14.04,virtualenv,xterm,Terminal,Ubuntu 14.04,Virtualenv,Xterm,我的Ubuntu桌面上有两个XTerm终端。我的目标是在打开第一个时激活py2 virtualenv,在打开第二个时激活py3 试图通过更改[桌面输入]下的Exec行来操纵行为,但无效 [Desktop Entry] Name=PY2-VENV Exec=uxterm && source /home/user/py2-venv/bin/activate Terminal= true . . . 有什么办法吗?你的意思可能是 Exec=uxterm (用于设置xterm的she

我的Ubuntu桌面上有两个XTerm终端。我的目标是在打开第一个时激活py2 virtualenv,在打开第二个时激活py3

试图通过更改
[桌面输入]
下的
Exec
行来操纵行为,但无效

[Desktop Entry]
Name=PY2-VENV
Exec=uxterm && source /home/user/py2-venv/bin/activate
Terminal= true
.
.
.
有什么办法吗?

你的意思可能是

Exec=uxterm
(用于设置xterm的shell脚本)而不是

Exec=uterm
但是,该
&&
可能不起作用,因为对可以直接转换为
execvp
调用的内容的调用:

Exec键必须包含命令行命令行由一个可执行程序组成,可选择后跟一个或多个参数。可执行程序可以使用其完整路径指定,也可以仅使用可执行文件的名称指定。如果未提供完整路径,将在桌面环境使用的$path环境变量中查找可执行文件。可执行程序的名称或路径不能包含等号(=)。参数之间用空格分隔

论点可以全部引用。如果参数包含保留字符,则必须引用该参数。引用参数的规则也适用于提供的可执行程序的可执行名称或路径

假设您的shell是bash,您可以使用它的注释行选项来指向不同的shell初始化文件:

   --init-file file                                                         
   --rcfile file                                                            
          Execute  commands  from file instead of the system wide initial‐  
          ization file /etc/bash.bashrc and the standard personal initial‐  
          ization  file ~/.bashrc if the shell is interactive (see INVOCA‐  
          TION below). 
例如,类似这样的事情:

Exec=uxterm -e bash --rcfile /home/user/py2-venv/bin/activate

谢谢你的回复。你是对的,我的意思是“输入错误”。我尝试了您的解决方案,但仍然不起作用,原因是上次它不起作用,因为exec命令在
-e
之后缺少引号。工作语法如下所示:Exec=uxterm-e“bash--rcfile/home/user/py2-venv/bin/activate”。非常感谢你!