백그라운드에서 실행되는 스크립트 (터미널 창 또는 TTY없이)가 있으며 가끔 뭔가를 수행합니다.
이제 뭔가를 할 때 다른 작업을 수행하고 Gnome Terminal 창을 열고 2 개의 명령을 실행하는 것입니다. 실제로는 1 개의 명령 만 실행하면되지만 명령의 출력을 볼 수 있도록 터미널 창을 열어두고 싶습니다. 이 명령은 stdout과 stderr 모두에 인쇄하고 시간이 지남에 따라 출력이 변경되므로 파일에 작성하고 일종의 알림을 보내는 것만으로는 작업이 잘 수행되지 않습니다.
Gnome Terminal을 창을 열고 1 개의 명령을 실행합니다.
gnome-terminal -e "sleep 10"
간단하게하기 위해 장기 실행 명령으로 sleep
를 선택했습니다. 그러나 다른 명령을 추가 할 때 터미널 창이 열리지 않습니다.
gnome-terminal -e "echo test; sleep 10"
이에 대한 해결책은 무엇입니까?
댓글
- 관련 : askubuntu.com/questions/315408/ … 및 askubuntu.com/questions/20330/ …
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"