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 -e
ou 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-emulator
não inicia um shell sozinho. Isso deixa apenas executáveis para serem iniciados com a -e
opção.
Embora echo
esteja disponível como um executável ( /bin/echo
), read
como um bash
comando 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 read
falhar, 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-emulator
inicia um bash
shell que será executado echo $PATH; read
. Como echo
e especialmente read
agora estão disponíveis como bash
comandos internos, o read
comando não falhará e aguardará uma entrada, o que mantém a janela aberta até que uma tecla seja pressionada.