터미널을 열고 명령을 자동으로 실행하려면 어떻게 해야 합니까?

터미널을 열고 명령을 자동으로 실행하려면 어떻게 해야 합니까?

나는 터미널 에뮬레이터에 있습니다. 지정된 명령을 실행하기 위해 다른 터미널을 열고 싶습니다.

gnome-terminal -e "zsh -c 'pwd; zsh;'"

다른 터미널에서는 계속해서 성공적으로 실행됩니다 pwd. 종료 zshpwdzsh가 시작되고 두 번째 터미널 인스턴스에서 다른 명령을 실행할 수 있습니다.

그런데 다른 응용프로그램을 실행하면 pwd장시간 실행되는 프로그램이 제대로 종료되지 않습니다 .

예를 들어 CtrlCnode.js 서버를 종료하기 위해 아래 명령을 입력하면 터미널도 닫힙니다. 옵션을 통해 SIGINT첫 번째 옵션으로 전달되는 것 같습니다 .zsh-c

gnome-terminal -e "zsh -c 'node server.js; zsh;'"

이 문제를 어떻게 해결할 수 있나요?

답변1

나는 이것을 bash에서 시도했다

그래도 안되면 미리 사과해주세요.

나는 userInput.sh라는 bash 스크립트를 작성했습니다. 스크립트는 사용자 입력을 기다리고 종료됩니다.

`

## trap ctrl-c and call ctrl_c()

trap ctrl_c INT

function ctrl_c() {

echo "** Trapped CTRL-C"

exit
}

read -p "Press any key to continue... " -n1 -s 

이제 실행하고 clt+c를 누르면

gnome-terminal -e "bash -c './userInput.sh; bash;'"

userInput.sh는 종료되지만 bash 프롬프트는 그대로 유지됩니다.

이제 귀하의 경우에는 사용자 입력을 기다리지 않고 다음과 같이 node server.js를 실행하고 있다고 생각합니다.

## trap ctrl-c and call ctrl_c()

trap ctrl_c INT

function ctrl_c() {

echo "** Trapped CTRL-C"

exit
}

node server.js

스크립트 이름을 "runNodeJs.sh"라고 가정하면 명령은 다음과 같습니다.

gnome-terminal -e "bash -c './runNodeJs.sh; bash;'"

관련 정보