새 터미널을 열고 이 새 터미널의 명령에 대해 지정된 세트를 실행하는 명령 구조는 무엇입니까?

새 터미널을 열고 이 새 터미널의 명령에 대해 지정된 세트를 실행하는 명령 구조는 무엇입니까?

저는 Linux Mint 19.03을 사용하고 있습니다.

우선, 내 질문이 중복되었다고 생각할 수 있는 가능한 질문을 대부분 읽었음을 확신할 수 있습니다.

이제 기본적으로 터미널 창에 무언가를 입력하여 새 터미널 창을 열고 명령을 실행하고 싶습니다.

이 같은:

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

이 코드는 새 터미널을 열어야 하며 $PATH 변수가 표시되어야 하며 읽기는 단지 터미널을 정지하기 위한 것입니다.

나는 시도했거나  x-terminal-emulator -e또는   이 작업을 올바르게 수행할 수 없었습니다 x-terminal-emulator -c .  -x유사한 질문에 대한 이 SE의 모든 답변은 모두 이전 답변이며 -e 또는 -x를 사용했지만 해당 옵션은 더 이상 사용되지 않는다고 말합니다.

그렇다면 이를 달성하는 가장 적절한 방법은 무엇입니까?

감사해요.

답변1

x-terminal-emulator자체적으로 쉘을 시작하지 않습니다. 옵션 을 사용하여 시작될 실행 파일만 삭제됩니다 -e.

echo는 실행 파일( /bin/echo) 로 사용할 수 있지만 가 read없으면 bash내부 명령이 실패합니다 bash. 따라서 새 창의 출력은 창을 여는 데 걸리는 것보다 빠르게 완료되며, read실패할 경우 창은 보기 전에 닫힙니다.

이렇게 하면 트릭이 수행됩니다.

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

이제 쉘을 x-terminal-emulator시작한 bash다음 실행할 것입니다 echo $PATH; read. 특히 이제 내부 명령 으로 사용할 수 있으므로 명령이 실패하지 않고 입력을 기다리므로 키를 누를 때까지 창이 열린 상태로 유지됩니다 echo.readbashread

관련 정보