"if"에서 백그라운드로 작업 보내기


10

왜 이런거야?

if true; then sleep 3 &; fi
bash: syntax error near unexpected token `;'

나는 달리고 싶다

sleep 3

[ "sleep 3"은 예제 일 뿐이므로 백그라운드에서 "paralell"스타일로 실행되므로 더 빨리 완료됩니다. 그러나 나는 이것을 얻고있다 :

bash: syntax error near unexpected token `;'

에러 메시지. 왜? 백그라운드로 작업을 보낼 수없는 이유는 무엇입니까?


if문장으로 무엇을 테스트하고 있다고 생각 하십니까?
glenn jackman

답변:


6

이 경우 명령을 분리하지 않아도됩니다 ( &자체 분리).

예를 들어.

$> if true; then (sleep 3; echo ok) &  fi
[1] 14224
$> ok

8

때문이다 &이미 문 분리 당신이 넣어해서는 안, ;이 후.

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