시작된 프로그램이 종료될 때 터미널이 닫히는 것을 방지하는 방법은 무엇입니까?

시작된 프로그램이 종료될 때 터미널이 닫히는 것을 방지하는 방법은 무엇입니까?

와 같은 터미널(urxvt와 같은 터미널)을 시작하면 urxvt -e sleep 5새 터미널이 시작되지만 5초 후에 프로그램이 sleep종료되었기 때문에 터미널이 닫힙니다. 명령줄의 프로그램으로 터미널을 시작하고 해당 프로세스가 끝난 후에도 터미널을 계속 활성 상태로 유지하려면 어떻게 해야 합니까?

실제로 내가 실제로 하고 싶은 것은 urxvt -e tmux new-session top실행 중인 tmux 세션으로 urxvt를 여는 것 입니다 top. 그러나 를 누르면 종료 q되어 toptmux 및 urxvt도 종료됩니다. 나갈 때 toptmux 내의 쉘로 이동하고 싶습니다 .

답변1

터미널(tmux)은 실행하라고 지시한 명령이 실행되면 닫힙니다. 실행한 다음 대화형 셸을 실행하려면 top그렇게 하도록 지시해야 합니다. 명령을 결합하는 것은 셸의 작업이므로 중간 셸(대화형이 아님)을 실행하고그것두 명령을 연속해서 실행합니다.

urxvt -e tmux new-session sh -c 'top; "$SHELL"'

답변2

한 가지 가능성:

gnome-terminal -e sh -c "sleep 5; bash"

요점은 bash초기 명령이 완료된 후 셸(이 경우)을 실행하는 것입니다. 불행하게도 문장 전체가 하나의 명령으로 해석되기 때문에 단순함 gnome-terminal -e 'sleep 5; bash'은 불가능합니다 .sleep 5; bash

관련 정보