Отправить задачу на задний план в «если»


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заявлением?
Гленн Джекман

Ответы:


6

Похоже, вам не нужно разделять команды в этом случае ( &разделяйте их сами).

Например.

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

8

Это потому, что &уже является разделителем операторов, поэтому вы не должны ставить ;после этого.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.