비 차단 bash 명령


11

다음과 같은 bash 스크립트가 있다고 가정 해 봅시다.

#!/bin/sh
gedit
rm *.temp

내가 사용하여 실행하면 sh ./test.sh, gedit팝 업하지만 rm일부는 I 후 닫을 때까지 실행되지 않습니다 gedit.

gedit닫히지 않아도 스크립트가 계속 실행되기를 원합니다 . 같은은 geditbash는 실행을 차단하지 않습니다.

내가 준 예제는 단지 예일뿐입니다 ( rm실제 상황 에서는 첫 번째 것은 작동하지 않습니다).

답변:


25

찾고있는 용어를 "백그라운드"작업이라고합니다. 쉘이나 스크립트에서 명령을 실행할 때 끝에 플래그를 추가하여 백그라운드로 보내고 새 명령이나 스크립트의 나머지 부분을 계속 실행할 수 있습니다. 를 포함한 대부분의 쉘 sh에서 이것은 &캐릭터입니다.

#!/bin/sh
gedit &
rm ./*.temp

그런 식으로, 쉘의 종료를 기다리지 않고 gedit모두 rmgedit동시에 실행됩니다.

"차단"이라는 용어는 일반적으로 입력 / 출력 스트림, 종종 파일이나 장치와 관련이 있습니다. 또한 컴파일 언어에서 사용한 것과 비슷한 의미로 사용되지만 bash 및 유사한 쉘 스크립팅에서는 용어 (및 기능!)가 약간 다릅니다.


감사합니다! 내가 왜 구글에서 fifo와 입력 결과를 얻었는지 설명해라 : D
Plante

필자는 Plante가 스크립트를 다시 작성하지 않고 백그라운드에서 각 작업을 수행하기 위해 외부에서 스크립트에 영향을 미치고 싶다는 인상을 받았습니다.
사용자 알 수 없음

@user : 그가 원하는 것을 추측하기 위해 몇 번의 읽기가 필요했습니다. 아마도 당신은 설명을 위해 질문에 의견을 남길 수 있습니다.
Caleb

그것이 바로 내가 필요한 것입니다. 다시 한 번 감사드립니다. 지금까지 잘 작동합니다!
Plante
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.