[Terminal] - Abrir por meio de Script. [Resolvido]

Iniciado por Matheus Leandro Ferreira, 26 de Fevereiro de 2013, 15:00

tópico anterior - próximo tópico

Matheus Leandro Ferreira

Boa tarde,

Estou criando um Script que deverá abrir um ou vários terminais (mas isso não vem ao caso agora) e que neste terminal que abrir apresente o resultado de um comando.

Executo o meu Script dessa forma: ./MeuScript.bsh

Dentro dele, já tentei acrescentar o comando:

gnome-terminal --command cd /etc/
echo "cd /etc/" | gnome-terminal

Porém nenhum deles obtive um resultado satisfatório. O Terminal abriu e não fez nada. Tentei colocar um & no final dos comandos, e também não funcionou.

Alguém pode me dar uma luz?

irtigor

Esse teu exemplo não faz sentido, e dizer o que realmente quer traz resultados melhores. De qualquer forma, "cd" não é um programa, é um comando que faz parte do shell (embutido nele), então:


gnome-terminal -e bash -c "cd /etc"

Matheus Leandro Ferreira

Citação de: irtigor online 26 de Fevereiro de 2013, 19:45
Esse teu exemplo não faz sentido, e dizer o que realmente quer traz resultados melhores. De qualquer forma, "cd" não é um programa, é um comando que faz parte do shell (embutido nele), então:


gnome-terminal -e bash -c "cd /etc"


Bom dia,

De acordo com o comando gnome-terminal --help a opção -c é inválida e inexistente.

O fato é o seguinte. Estou querendo criar um Script, que de dentro dele, abra um novo terminal e liste o que existe no diretório corrente. Por exemplo.:

#!/bin/sh

gnome-terminal -e bash --command "ls -lh"


Só que eu não sei exatamente o comando e como fazer isso. Até então, o terminal abre, porém não executa nada.

Obrigado.

irtigor

O comando é tudo que está apos o "-e", então você olhou no lugar errado (man bash) e é exatamente o que passei. O ls é um programa, então você até pode chamar direto, só não vai ser útil porque o emulador de terminal vai fechar quando ele for concluído (ex: gnome-terminal --working-directory="$PWD" -e ls).

Uma saida é: gnome-terminal --working-directory="$PWD" -e bash -c "ls; exec bash"

Obs: ainda seria mais útil se pedisse ajuda pra resolver o problema, no lugar de pedir ajuda pra algo que acha que resolve ele.

Matheus Leandro Ferreira

Citação de: irtigor online 27 de Fevereiro de 2013, 12:22
O comando é tudo que está apos o "-e", então você olhou no lugar errado (man bash) e é exatamente o que passei. O ls é um programa, então você até pode chamar direto, só não vai ser útil porque o emulador de terminal vai fechar quando ele for concluído (ex: gnome-terminal --working-directory="$PWD" -e ls).

Uma saida é: gnome-terminal --working-directory="$PWD" -e bash -c "ls; exec bash"

Obs: ainda seria mais útil se pedisse ajuda pra resolver o problema, no lugar de pedir ajuda pra algo que acha que resolve ele.

Caro colega,

Primeiro: Você está testando antes de me enviar esses comandos? Acho que não.

matheus@s:~$ gnome-terminal --working-directory="$PWD" -e bash -c "ls; exec bash"
Unknown option -c
Execute "gnome-terminal --help" para ver a lista completa de opções de linha de comando disponíveis.


Segundo: Eu não tenho problema algum para resolver. Se você não percebeu, estou criando um Script do Zero e já expliquei o que quero fazer com este Script.

Terceiro: No momento estou sendo muito educado. Então, me faz um favor de apenas responder a pergunta. Evite comentários desnecessários. E claro, se você souber como evita-los.

Obrigado.




Tota

Ola

Não tenho nada que me meter, mas como não gosto de "flames", gostaria de pedir calma.

Então, destituído de qualquer espírito provocativo, e como professor que sou acredito que:

CitarVocê está testando antes de me enviar esses comandos? Acho que não.

Isto pode-se dar a um embasamento teórico, e a meu ver quem deve testar para saber se é adequado ou não é o interessado apenas.

CitarEu não tenho problema algum para resolver.

Isto eu não entendi ou entendi mal. Se não existe problemas a resolver, e como este é um fórum de discussões, o desejo apenas seria o de trocar informações?

CitarSe você não percebeu, estou criando um Script do Zero e já expliquei o que quero fazer com este Script.


Então o faça, poste seus resultados e o forum poderá opinar.

Mas de novo, nada de flames, por favor

[]'s

irtigor

Eu não tinha instalado até dois minutos atrás, e realmente não funciona, porque ele foge um pouco do comportamento dos emuladores tradicionais (urxvt e xterm). A solução é simples, cercar o comando, então fica: gnome-terminal --working-directory="$PWD" -e 'bash -c "ls; exec bash"'

E não são comentários desnecessários, não foi a primeira e não vai ser a ultima vez que vou falar assim, porque já vi em N ocasiões usuários pedindo uma coisa, mas quando finalmente resolviam falar o "porque" (quando descreviam o problema), a solução era seguir um caminho completamente diferente. Até agora, é exatamente isso que eu enxergo aqui, infelizmente, mas tudo bem, você não é obrigado a se explicar, da mesma forma que eu não sou obrigado a responder.

Matheus Leandro Ferreira

Citação de: irtigor online 28 de Fevereiro de 2013, 19:37
Eu não tinha instalado até dois minutos atrás, e realmente não funciona, porque ele foge um pouco do comportamento dos emuladores tradicionais (urxvt e xterm). A solução é simples, cercar o comando, então fica: gnome-terminal --working-directory="$PWD" -e 'bash -c "ls; exec bash"'

E não são comentários desnecessários, não foi a primeira e não vai ser a ultima vez que vou falar assim, porque já vi em N ocasiões usuários pedindo uma coisa, mas quando finalmente resolviam falar o "porque" (quando descreviam o problema), a solução era seguir um caminho completamente diferente. Até agora, é exatamente isso que eu enxergo aqui, infelizmente, mas tudo bem, você não é obrigado a se explicar, da mesma forma que eu não sou obrigado a responder.

Oi,

Agora sim! Na realidade você fez uma grande tempestade para uma simples pergunta. Eu sou programador a quase 11 anos e não sou igual as outras pessoas que não vai atrás e não procura saber o motivo de ter ou não funcionado. Com toda certeza eu vou dar um gnome-terminal --help para verificar as opções utilizadas.

Tanto é que, eu não estava fugindo muito do necessário. A opção --working-directory="$PWD" neste caso não é necessária. E a opção -e é a mesma que --command.

gnome-terminal -e 'bash -c "ls; exec bash"'

De qualquer forma, agradeço a sua ajuda.

irtigor

Não fiz tempestade e é irrelevante o tempo que você programa, vai parecer duro, mas se soubesse não tinha feito a pergunta (nessa matéria é "novato", quanto menos assumir coisas como certas, melhor --- é um erro muito comum, diga-se de passagem). Tanto, que a minha resposta seria diferente se tivesse simplesmente mostrado a mensagem de erro, no lugar de falar que consultou o -- help, porque como já havia dito, tudo após o "-e" é o comando, não há absolutamente nada lá que explique, um bom começo seria o manual do bash.

[]'s

china2020

Citação de: Matheus Leandro Ferreira online 26 de Fevereiro de 2013, 15:00
Boa tarde,

Estou criando um Script que deverá abrir um ou vários terminais (mas isso não vem ao caso agora) e que neste terminal que abrir apresente o resultado de um comando.

Executo o meu Script dessa forma: ./MeuScript.bsh

Dentro dele, já tentei acrescentar o comando:

gnome-terminal --command cd /etc/
echo "cd /etc/" | gnome-terminal

Porém nenhum deles obtive um resultado satisfatório. O Terminal abriu e não fez nada. Tentei colocar um & no final dos comandos, e também não funcionou.

Alguém pode me dar uma luz?



Ola!

Tive um problema similar ao seu, quando estava criando um programa que ele continuasse a analise em outro terminal,então tiver a ideia de criar um script em Python,ficou bacana ele abre outro terminal e ainda executa o comando...

Já com o comando "gnome-terminal --command" tive problemas porque quando pedia que ele "executasse " um script ele fechava o terminal...
tentei de varias formas mais com o script que fiz em python ficou tudo mais facil..

=================================================================
from subprocess import call

call(['gnome-terminal' , '-e' ,'bash','--command','python 2.py'])


=================================================================
ele executa esse script  python 2.py em outro terminal sem ter problema de fechar...