gnome-terminal을 사용하여 여러 탭 열기 탭을 열고 각 탭에서 명령을

Rails 스택, rails, spork 및 autotest에서 3 개의 서비스를 여는 명령을 작성하려고합니다. 3 개의 터미널을 열고 앱 폴더로 이동하여 실행하여 이러한 명령을 개별적으로 실행할 수 있습니다. 3 개의 새 탭을 열고 각 탭에서 명령을 실행할 수도 있습니다.

문제는 다음과 같이 그놈 터미널을 통해 탭을 열려고하면 실패한다는 것입니다.

gnome-terminal --tab --title="rails s" -e "rails s" --tab --title="spork" -e "spork" --tab --title="autotest" -e "autotest"

오류 (포자와 자동 테스트의 경우) :

There was an error creating the child process for this terminal
Failed to execute child process "spork" (No such file or directory)

놀랍게도 ‘레일 s’에서 작동합니다 (탭은 서버가 실행 중임을 나타냅니다).

어떤 아이디어?



답변

아래는 stackoverflow.com 의 답변입니다.

  1. eval "$BASH_POST_RC".bashrc 끝에 a 를 추가 하십시오.

  2. BASH_POST_RC각 탭 의 환경 변수를 다음과 같이 실행하려는 명령으로 설정하십시오 . gnome-terminal --working-directory="/home/zardoz/projects/my_rails_app" --tab -e 'bash -c "export BASH_POST_RC=\"rails server\"; exec bash"' --tab -e 'bash -c "export BASH_POST_RC=\"autotest\"; exec bash"'


답변

gnome-terminal세 번 호출 하고 명령을 함께 묶으면 작동 && 하지 않으며 탭이 동일한 터미널에 나타나지 않으므로 실제로 다음 터미널을 표시하려면 첫 번째 터미널을 종료해야합니다.

한 번에 gnome-terminal모든 탭을 동시에 여는 방법은 --tab-with-profile=PROFILENAME스위치 를 사용하는 것 입니다. 아래 명령에서 첫 번째 명령 gnome-terminal --tab이 생성되는 첫 번째 창인 것처럼 첫 번째 명령을 그대로 둘 수 있습니다 . 이제 당신이 알아야 할 것은 사용중인 프로파일이며 --tab-with-profile=YourProfile다른 명령을 호출하는 데 사용할 수 있으며 열린 원래 터미널에 모두 한 번에 나타납니다.

명령이 수정되었습니다 :

gnome-terminal --tab --title="rails s" -e "rails s" --tab-with-profile=Default --title="spork" -e "spork" --tab-with-profile=Default --title="autotest" -e "autotest"

(미래의 리더를 들어 : 후 주어진 프로그램 이름으로 대체 -e여기에 주어진 명령 줄 테스트 할을;에 대한 귀하의 목표를 기억 -e설치되어 있어야하며에서 $PATH, 것들을하지에 $PATH사용 절대 경로를 같은, 예를 들어 /opt/mike/program)

--tab-with-profile스위치에 사용중인 실제 프로파일을 지정하십시오 . 첫 번째 호출은 나머지 를 gnome-terminal사용해야합니다 . 이 방법을 사용하면 동일한 인스턴스에서 많은 수의 탭을 열 수 있습니다 .--tab--tab-with-profilegnome-terminal

마우스 오른쪽 버튼을 클릭하여 현재 사용중인 프로필을 찾아서 프로필을 보면 현재 사용중인 gnome-terminal프로필에 마커가 표시됩니다.

여기에 이미지 설명을 입력하십시오

자세한 정보 및 프로파일 이름을 확인하려면 프로파일 환경 설정으로 이동하십시오.

자세한 내용은 man gnome-terminalUbuntu 맨 페이지 온라인을 참조하십시오 .


참고 :

로 프로그램을 시작하는 데 문제가 있으면 gnome-terminal에 위치를 추가 $PATH하거나 심볼릭 링크를 만들어 위치에 배치하십시오 $PATH(또는 여기에서 매우 유용한 것). 간단한 bash 래퍼 스크립트를 만들고 gnome-terminal위 의 명령 줄 에서 호출하십시오 . ( /location/of/script이름 만 아니라 절대 경로로 호출해야 합니다.)

예로서:

#!/bin/bash
cd $HOME/.rvm/gems/ruby-2.0.0-p0/bin
spork
exit 0

그런 다음 스크립트 이름을 지정하고 실행 가능하게 만들고 gnome-terminal위 의 명령 줄 에서 호출하십시오 . 문제가있는 모든 비리 포 프로그램에 대해이 작업을 수행하십시오.


답변

gnome-terminal --tab -- sh -c "python3 'test.py' ; bash"

이 코드는 파이썬 스크립트를 실행하는 터미널에서 새 탭을 열고 끝났을 때이 코드의 끝에 ‘bash’를 추가했기 때문에이 새 탭이 닫히지 않습니다 …

여러 번 원한다면 bash 스크립트에서 while 루프에 넣으십시오.


답변