Gnome 터미널 창을 열고 2개의 명령을 실행하세요.

Gnome 터미널 창을 열고 2개의 명령을 실행하세요.

때때로 작업을 수행하는 백그라운드(터미널 창이나 TTY 없이)에서 실행되는 스크립트가 있습니다.

이제 Gnome 터미널 창을 열고 2개의 명령을 실행하는 다른 작업을 수행하는 동안 한 가지 작업을 수행하고 싶습니다. 실제로는 1개의 명령만 실행하면 되는데 명령의 출력을 볼 수 있도록 터미널 창을 열어두고 싶습니다. 명령은 stdout 및 stderr에 인쇄되며 시간이 지남에 따라 출력이 변경되므로 파일에 쓰고 일종의 알림을 보내는 것만으로는 작업이 제대로 수행되지 않습니다.

Gnome Terminal을 사용하여 창을 열고 1개의 명령을 실행할 수 있습니다.

gnome-terminal -e "sleep 10"

sleep단순화를 위해 장기 실행 명령을 선택했습니다 . 그러나 다른 명령을 추가하면 터미널 창이 열리지 않습니다.

gnome-terminal -e "echo test; sleep 10"

이 문제에 대한 해결책은 무엇입니까?

답변1

gnome-terminal따옴표 안의 모든 내용은 하나의 명령으로 처리되므로 많은 명령을 연속적으로 실행하려면 인터프리터(일반적으로 셸)를 시작하고 그 안에서 다음과 같은 작업을 수행해야 합니다.

gnome-terminal -e 'sh -c "echo test; sleep 10"'

그런데 명령이 작업을 완료한 후에도 창을 열어두기를 원할 수 있습니다. 이 경우 새 셸을 시작하거나 현재 셸을 새 셸로 바꾸면 됩니다.

gnome-terminal -e 'sh -c "echo test; sleep 10; exec bash"'

답변2

2020년 1월 현재 이 -e옵션을 gnome-terminal계속 사용할 수 있지만 경고가 발생합니다.

# '-e' 옵션은 더 이상 사용되지 않으며 이후 버전의 gnome-terminal에서 제거될 수 있습니다.

# 옵션을 종료하려면 "--"를 사용하고 그 뒤에 실행할 명령줄을 배치합니다.

경고 없이 이 두 명령을 실행할 수 있습니다.

gnome-terminal -- /bin/sh -c 'echo test; sleep 10'

그리고, 에서 언급했듯이이 답변, 나중에 창을 계속 열어 두려면 다음을 수행하십시오.

gnome-terminal -- /bin/sh -c 'echo test; sleep 10; exec bash'

*비슷한 질문에 답하세요

답변3

명령을 외부 스크립트에 넣고 두 번째 그놈 터미널 기반 스크립트에서 실행하는 것이 더 좋았습니다.

스크립트 1: command.sh

#bin/bash
precommand
app
postcommand

그런 다음 gnome-terminal runscript.sh에서 이러한 스크립트를 실행하는 스크립트:

gnome-terminal --full-screen --hide-menubar -- /bin/sh commands.sh

관련 정보