그놈 쉘을 시작하고 스크립트에서 여러 명령을 실행하는 방법

그놈 쉘을 시작하고 스크립트에서 여러 명령을 실행하는 방법

Gnome Terminal을 시작하고 여러 명령을 실행하는 스크립트를 작성하려고 합니다. 이는 USB를 통해 직렬 데이터를 기록하는 데 사용되며, 궁극적인 목표는 서로 다른 셸에서 여러 COM 포트를 여는 스크립트를 생성하는 것입니다. 모든 셸은 다음을 실행해야 합니다.

sudo script /logs/deviceX.log
sudo picocom /dev/ttyUSB0 -b 115200 -p o | ts "%Y-%b-%d %H:%M:%S10"

쉘을 계속 실행하십시오. 이 명령을 터미널에 직접 입력하면 제대로 작동하는 것을 확인했기 때문에 openPort이 두 명령을 사용하여 스크립트를 작성하고 다음을 사용해 보았습니다.

gnome-terminal -x bash -c "./openPort; exec bash"

그러나 터미널은 두 번째 명령이 아닌 첫 번째 명령만 실행합니다.

그런 다음 각 명령에 대해 별도의 스크립트를 만들고 다음을 사용해 보았습니다.

gnome-terminal -x bash -c "./openPort1; ./openPort2; exec bash"

그러나 나는 여전히 같은 결과를 얻습니다.

이것은 단지 구문 문제입니까, 아니면 완전히 잘못된 일을 하고 있습니까?

답변1

-x 대신 -e를 사용하여 gnome-terminal을 시작하면 작동합니다. 귀하의 경우:

gnome-terminal -e "./openPort"

터미널 창이 닫히는 것을 방지하려면 스크립트가 종료되지 않도록 해야 합니다(예: sleep끝에 "아무 키나 누르세요" 프롬프트를 사용하거나 추가하는 등). 스크립트가 완료된 후 대화형 셸을 사용하려면 bash -i끝에 이를 추가하면 됩니다.

관련 정보