터미널을 닫지 않고 스크립트를 실행하는 방법은 무엇입니까?


69

파일에 스크립트 bla.sh가 있으며 실행 파일입니다. 내가하면 클릭 거기에, 스크립트가 실행되고 창이 닫힙니다. 창문을 열어두고 싶습니다 .

cmd /k** commandWindows의 명령과 같은 것 .

PS는 내가 하지 않습니다 사용하려면 pause,하지만 난 스크립트가 실행 된 후 명령을 더 쓸 수 싶어요.

답변:


81

$SHELL스크립트 끝에 넣으십시오 .

대체 텍스트

작은 결함 : 쉘처럼 gnome-terminal실행되지 않기 때문에 bash응용 프로그램으로 간주 하고 터미널을 닫으려고 할 때 경고표시합니다 .

There is still a process running in this terminal
Closing the terminal will kill it.

이 경고를 숨길 수있는 좋은 방법을 찾지 못했습니다. 원하는 경우 다음을 실행하여 완전히 비활성화 할 수 있습니다.

gconftool --set /apps/gnome-terminal/global/confirm_window_close --type boolean false

xtermgnome-terminal 대신에 사용 하는 경우에는 발생하지 않습니다 . 당신을 귀찮게해야합니다.


20
설정을 변경하지 않고 경고를 없애는 exec $SHELL대신에 사용할 수 있습니다 $SHELL.
Andrea Corbellini

1
그러나이 솔루션은 추가 쉘 / 프로세스를 만듭니다. 이것을 피할 수 있습니까?
lucasvc

나는 이것을 할 수있는 방법을 모른다. 문제는 첫 번째 bash 프로세스가 완료되면 표준 IO에서 핸들을 잃기 때문에이 핸들을 전달하는 데몬으로 약간의 트릭을 수행해야하므로 오류가 발생하기 쉽고 성가신 것입니다.
Stefano Palazzo

10

그놈 터미널 사용

명령 문자열 끝에; bash를 추가하고 gnome-terminal을 추가하면 -c 옵션과 함께 스크립트를 호출 할 수 있습니다. 예를 들면 다음과 같습니다.

gnome-terminal -e "bash -c ~/script.sh;bash"

이것은 다음을 수행합니다.

  1. 그놈 터미널을 엽니 다
  2. 스크립트 script.sh를 실행합니다
  3. 스크립트가 완료된 후 bash 프롬프트를 표시합니다.

창을 닫거나 bash 프롬프트에서 exit를 입력하여 그놈 터미널 창을 종료 할 수 있습니다. 또는 요청에 따라 더 많은 명령을 입력 할 수 있습니다.



7

스크립트에 액세스 할 수있는 경우 끝에 다음 코드를 추가 할 수도 있습니다.

read

이 코드는 입력을 닫기 전에 입력을 기다리므로 Enter를 누를 때까지 터미널이 열린 상태로 유지됩니다.


1
내가 자주 사용하는 bash말에,하지만 read나를 단지로 창을 닫을 수 ctrl+c또는 enter대신에, ctrl+shift+w또는 alt+f4. 스크립트에서 빠르게 반복 할 때 편리합니다.
hsandt

5

임시 파이프와 함께 bash--init-file옵션을 사용하십시오 .

bash --init-file <(echo './<script_name>')

전의:

bash --init-file <(echo './bla.sh')

2

명령 문자열 끝에 사용 xterm하고 추가 하면 ;bash작동합니다. 예를 들면 다음과 같습니다.

xterm -e "bash ~/script.sh;bash"

이것은 다음을 수행합니다.

  1. xterm을 엽니 다
  2. 스크립트를 실행 script.sh
  3. 스크립트가 완료된 후 bash 프롬프트를 표시합니다.

창을 닫거나 exitbash 프롬프트에서 입력하여 xterm 창을 종료 할 수 있습니다 . 또는 요청에 따라 더 많은 명령을 입력 할 수 있습니다.


1
xterm -e bash --rcfile bla.sh

그러면 새 창에서 스크립트가 실행되고 완료된 후에 창을 제어 할 수도 있습니다.

그러나 ~/.bashrc우리가 bla.sh대신 실행했기 때문에 새 창이 정상적으로 로드되지 않습니다 . 이것은 넣어서 해결할 수 있습니다

. ~/.bashrc

~의 상단에 bla.sh

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.