como posso abrir um console extra e executar um programa nele com um comando?

como posso abrir um console extra e executar um programa nele com um comando?

Então eu sei que se eu digitar gnome-terminal ou xterm, uma nova janela será exibida. Então verifiquei a página de manual desses dois, nada de relevante foi encontrado.

Então percebi que no Mac você pode fazer isso com o programa aberto. Mas parece que no Linux não é tão trivial.

Alguém tem experiência?

Responder1

Atualizar:A nova sintaxe recomendada é:

gnome-terminal -- bash -c "<meu comando ou script>; exec bash"
  • Se você deseja acessar o diretório inicial dos usuários dentro do comando acima, use a variável de ambiente $HOME:bash -c "cd $HOME/; ..."

Se você olharman gnome-terminal(e gnome-terminal --help) as opções -xand -eestão disponíveis (e não está explicitamente escrito que estão obsoletas), mas todos os exemplos são dados pela sintaxe fornecida acima.


Eu preferiria usar a opção -xque fornece um trabalho mais confiável do que -e:

gnome-terminal -x bash -c "<my command or script>; exec bash"
  • A opção -xsignifica--execute - o restante da linha de comando dentro do terminal.

  • E nosso comando é bash -c "<commands>". Isso significa que executamos um novo bashshell, que deve executar alguns arquivos -c "<commands>".

  • Temos dois separados (por ponto e vírgula ; == new line) <commands>.

  • O primeiro comando <my command or script>que desejamos será executado.

  • O segundo comando exec bashtem um significado - permanecer aberto na gnome-terminaljanela atual. Háoutras abordagens possíveisfazer isso. No caso atual o comando execirásubstitua a imagem do processo atual por uma nova imagem do processo- em outras palavras, 'matará' o processo atual e executará um novo ( bash) sob o PID atual.


Mais exemplos de uso deste formato:

Responder2

Outra abordagem que manterá a janela aberta é usar o xterm:

xterm -hold -e cmd

A opção de espera mantém a janela aberta.

Responder3

gnome-terminal -e cmdabrirá uma janela de terminal e será executada cmddentro dela.

Responder4

Você pode simplesmente fazer isso CTRLALTTe abrirá um novo terminal.

Tentargnome-terminal -e "bash -c command;bash"

informação relacionada