
다음과 같은 일부(15개 이상의) 응용 프로그램을 실행하는 스크립트가 있습니다.
cd mypath
sleep 1
gnome-terminal -t App1 --tab -e "./App1"
sleep 1
gnome-terminal -t App2 --tab -e "./App2"
..
..
sleep 1
gnome-terminal -t App15 --tab -e "./App15"
보시다시피 이는 15개의 다른 터미널에서 앱을 시작합니다.
이제 + ./AppX
로 어떤 것을 종료하면 어떤 이유로든 프로그램이 종료되고 해당 터미널도 종료됩니다. CtrlC
Ctrl내가 원하는 것은 +를 누르면 C가 종료되지만 ./AppX
터미널은 여전히 열려 있는 것입니다. 다시 시작하려면 AppX
위쪽 화살표 키와 Enter만 눌러야 하기 때문입니다.
편집하다::
답을 얻었습니다::askubuntu.com에서 허용되는 답변을 참조하세요.
또 다른 질문은: 다음과 같은 명령을 두 개 이상 실행하려면 어떻게 해야 합니까?
gnome-terminal -e "sleep 1; AppX"
작동하지 않아서 다양한 다른 방법(&, &&, |)을 시도했지만 모두 실패했습니다.
답변1
다음 명령은 다중 그놈 터미널에 15개의 탭이 있는 새 터미널을 엽니다.
cd mypath
multi-gnome-terminal \
--add-tab -tname App1 --tcommand "./App1" \
--add-tab -tname App2 --tcommand "./App2" \
...
--add-tab -tname App15 --tcommand "./App15" \
정말로 수면이 필요한 경우 다음과 같이 통합할 수 있습니다.
cd mypath
multi-gnome-terminal \
--add-tab -tname App1 --tcommand "sleep 1; ./App1" \
--add-tab -tname App2 --tcommand "sleep 2; ./App2" \
...
--add-tab -tname App15 --tcommand "sleep 15; ./App15" \
실행하려는 명령의 개수/목록을 동적으로 변경해야 하는 경우 다음을 사용할 수 있습니다.
cd mypath
cmd=(multi-gnome-terminal)
cmd=("${cmd[@]}" --add-tab -tname App1 --tcommand "sleep 1; ./App1")
cmd=("${cmd[@]}" --add-tab -tname App2 --tcommand "sleep 2; ./App2")
...
cmd=("${cmd[@]}" --add-tab -tname App15 --tcommand "sleep 15; ./App15")
"${cmd[@]}"