2016-07-09 4 views
0

물고기를 배경으로 실행되는 프로세스 (예 : open "foo")에 대한 일반적인 방법은 wait입니까? 내가 말할 수있는 한, $! (bash에서 마지막으로 실행 된 하위 프로세스의 PID)은 물고기에 없기 때문에 단지 wait $! 일 수는 없습니다.프로그램 열기 및 대기 중

+1

'IF_OK_CMD'의 의미는 무엇입니까? '열린'(즉, 어떤 OS)입니까? 나는 당신이 배경에 절대 넣지 않을 때 프로세스를 fg하기를 원하는 이유에 대해 혼란스러워합니다. 기본적으로 프로세스는 포 그라운드에서 실행됩니다. '열린'이 막 빠져 나간 것이 가능한가? –

+0

더 명확하게 편집하겠습니다. –

+2

수정 해 주셔서 감사합니다. 나는 무슨 일이 일어나고 있는지 의심 스럽다. "열린"은 이제 막 빠져 나간다. 그것은 배경이되고 있지 않고, 단지 파일을 여는 것을 끝내고 나간다. 이것이 OS X라면, 아마도 당신은'open -W'를 원할 것입니다. –

답변

3

1) 어류 관용어는 cmd1; and cmd2 또는 if cmd1; cmd2; end입니다.

2) open ARG을 실행하면 bash 및 zsh도 차단되지 않습니다. open은 보통 실행중인 프로그램을 백그라운드로 처리하기 때문에 open이 종료됩니다. 셸은 open이 "실제"프로그램을 배경으로두고 있다는 것을 전혀 모릅니다. 그 행동의 또 다른 예는 vim -g을 통해 GUI 모드에서 vim을 시작하는 것입니다. macOS에서 -W 플래그를 추가하거나 Linux에서 -w을 열기 명령에 추가하고 -f을 vim 명령에 추가하십시오.

여기서 핵심은 open은 배경이 있어도 열린 프로세스에 문제가 발생할 때까지 물고기가 and 연산자를 평가하는 데 사용할 신호를 반환하지 않는다는 것입니다. 그래서 당신은 당신이 찾고있는 행동을 얻습니다.