백그라운드에서 실행되는 스크립트 (터미널 창 또는 TTY없이)가 있으며 가끔 뭔가를 수행합니다.

이제 뭔가를 할 때 다른 작업을 수행하고 Gnome Terminal 창을 열고 2 개의 명령을 실행하는 것입니다. 실제로는 1 개의 명령 만 실행하면되지만 명령의 출력을 볼 수 있도록 터미널 창을 열어두고 싶습니다. 이 명령은 stdout과 stderr 모두에 인쇄하고 시간이 지남에 따라 출력이 변경되므로 파일에 작성하고 일종의 알림을 보내는 것만으로는 작업이 잘 수행되지 않습니다.

Gnome Terminal을 창을 열고 1 개의 명령을 실행합니다.

gnome-terminal -e "sleep 10" 

간단하게하기 위해 장기 실행 명령으로 sleep를 선택했습니다. 그러나 다른 명령을 추가 할 때 터미널 창이 열리지 않습니다.

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

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

댓글

Answer

gnome-terminal는 따옴표로 묶인 모든 것을 하나의 명령으로 취급하므로 여러 개를 연속적으로 실행하려면 다음을 수행해야합니다. 인터프리터 (일반적으로 셸)를 시작하고 그 안에서 작업을 수행합니다. 예를 들면 다음과 같습니다.

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

BTW, 명령이 작업을 마친 후에도 창이 열려 있도록 할 수 있습니다.이 경우 새 셸을 시작하거나 현재 셸을 새 셸로 바꿉니다.

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

설명

  • # 옵션 “-e”는 더 이상 사용되지 않으며 다음 버전에서 제거 될 수 있습니다. gnome-terminal. # #“-”를 사용하여 옵션을 종료하고 그 뒤에 실행할 명령 줄을 입력합니다. # 이제 오류가 발생합니다. 그러나 -e를-로 바꾸면 나타나는 새 터미널에서 오류가 발생합니다. -?
  • @ eric.frederich는 stackoverflow의 질문에 대한 이 답변 을 기반으로하여 구문이 gnome-terminal -- /bin/sh -c 'echo test; sleep 10'

답변

2020 년 1 월 현재 < gnome-terminal의 div id = “18c4afeaab”>

옵션은 계속 작동하지만 경고를 표시합니다.

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

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

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

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

이 답변 에서 언급했듯이 나중에 창을 열어 두려면 다음을 수행 할 수 있습니다.

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

* answer 티 o 유사한 질문

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다