쉘 스크립트를 올바르게 작성하고 실행하고 올바르게 종료하는 방법은 무엇입니까? [복사]

쉘 스크립트를 올바르게 작성하고 실행하고 올바르게 종료하는 방법은 무엇입니까? [복사]

나는 다음과 같은 파일을 썼다.시작 파일많은 작업을 수행합니다(기본적으로 로컬 컴퓨터를 연 후 많은 작업이 시작됩니다). 발췌 내용은 다음과 같습니다.

#!/bin/bash
gnome-terminal --tab &
veracrypt --auto-mount favorites &
thunderbird &
~/Application/IDEA/bin/./idea.sh &
/usr/bin/slack &
echo myuser mypass | skypeforlinux --pipelogin &
sh bsync-project-folder.sh &
exit

콘솔 창을 열고 다음을 수행합니다.

. startup.sh

쉘 스크립트가 실행되고 창이 닫힙니다.

아직 작동 중:

sh startup.sh

또는

./startup.sh

쉘 스크립트가 실행되고 터미널 창이 열린 상태로 유지됩니다. 그러나 콘솔로 돌아가지 않으며 스크립트 실행을 중지해야 합니다 CTRL + C(명령줄 인터프리터를 사용하는지 실행하는지에 관계없이 ./).

그러나 스크립트를 완전히 종료한 다음 성공 메시지와 함께 동일한 콘솔로 돌아가고 싶습니다. 내가 무엇을 놓치고 있나요?

답변1

"<dot> <space> <script name>"으로 스크립트를 시작하고 스크립트에 "exit"가 포함되어 있으면 창이 닫힙니다. 점 표기법은 창에서 실행 중임을 의미하고 "종료"는 스크립트 자체가 아니라 창을 종료한다는 의미입니다.
>/dev/null 2>&1 모든 줄(마지막 & 앞)에 추가하여 어떤 명령이 여전히 stdout을 벗어나는지 알아보세요. 예: gnome
-terminal --tab >/dev/null 2>&1 &
...
마지막에 출구로 나갈 수는 있지만 꼭 출구로 나갈 필요는 없지만 여기서는 의미가 없습니다. 스크립트 실행: ./startup.sh

관련 정보