Use xterm -e python /path/to/script.py
, sem as aspas.
Suas citações de "
não estão se comportando como você deseja. xterm -e
está tentando executar "python
com /path/to/script.py"
como seu argumento, em vez de python
com /path/to/script
como seu argumento. Nesse caso, você pode simplesmente omitir as aspas.
Em um script shell ou quando você executa um shell de forma interativa, citações são tratadas especialmente e remoção de cotação é executada. Mas isso não acontece com os comandos que você especifica na configuração LXSession → Autostart → Aplicativos iniciados manualmente .
Felizmente, mesmo que xterm -e
no Ubuntu execute divisão de palavras em um argumento para tratá-lo como um comando, ele também aceita vários argumentos. É por isso que -e
tem que ser a última opção - todo o resto é interpretado como parte do comando. Por exemplo, se você executar xterm -e nano foo
, isso abrirá foo
in nano
em uma janela XTerm. Como man xterm
diz:
-e program [ arguments ... ] This option specifies the program (and its command line arguments) to be run in the xterm window. It also sets the window title and icon name to be the basename of the program being executed if neither -T nor -n are given on the command line. This must be the last option on the command line.
Supondo que você não esteja tentando executar um script cujo caminho tenha espaços em seu nome, tudo o que você precisa fazer é remover as aspas:
xterm -e python /path/to/script.py
Duas outras advertências vêm à mente:
- Quando o script terminar,
python
será encerrado e a janela do XTerm também será encerrada. Se você não quer isso, então você pode adicionar código ao script Python que aguarda a interação do usuário, ou você pode escrever um script de shell wrapper (ou qualquer tipo de script wrapper) que executapython /path/to/script.py
e aguarda a interação do usuário. -
O XTerm funciona bem no Lubuntu, mas o emulador de terminal gráfico padrão é LXTerminal . Caso você prefira usar isso, você pode usar
lxterminal
em vez dexterm
. O comandolxterminal
aceita-e
e o trata da mesma maneira quexterm
, então isso seria parecido comlxterminal -e python /path/to/script/py
. Assim como no XTerm, o LXTerminal será encerrado quando o comando terminar de ser executado.