Qual é a estrutura de comando para abrir um novo terminal e executar o conjunto de comandos fornecido neste novo terminal?

Qual é a estrutura de comando para abrir um novo terminal e executar o conjunto de comandos fornecido neste novo terminal?

Estou no Linux Mint 19.03

Em primeiro lugar, posso garantir que li a maioria das possíveis perguntas das quais você pode pensar que esta minha pergunta é uma duplicata.

Agora, basicamente quero digitar algo na janela do meu terminal para abrir uma nova janela do terminal e executar os comandos.

Algo assim:

[the part I am asking of] "echo $PATH; read"

Este código deve abrir um novo terminal, a variável $PATH deve ser exibida e lida apenas para interromper o terminal.

Eu tentei  x-terminal-emulator -eou  x-terminal-emulator -c ou  -x mas nunca consegui fazer isso corretamente. Todas as respostas neste SE para perguntas semelhantes são respostas antigas e usavam -e ou -x, mas diz que essas opções estão obsoletas.

Então, qual é a maneira mais adequada de conseguir isso?

Obrigado.

Responder1

x-terminal-emulatornão inicia um shell sozinho. Isso deixa apenas executáveis ​​para serem iniciados com a -eopção.

Embora echoesteja disponível como um executável ( /bin/echo), readcomo um bashcomando interno falhará sem bash. Portanto, a saída na nova janela é feita mais rápido do que o necessário para abrir a janela e, se readfalhar, a janela é fechada antes de você vê-la.

Isto irá fazer o truque:

x-terminal-emulator -e "bash -c 'echo $PATH; read'"

Agora x-terminal-emulatorinicia um bashshell que será executado echo $PATH; read. Como echoe especialmente readagora estão disponíveis como bashcomandos internos, o readcomando não falhará e aguardará uma entrada, o que mantém a janela aberta até que uma tecla seja pressionada.

informação relacionada