"यदि" में पृष्ठभूमि के लिए कार्य भेजें


10

ऐसा क्यों है?

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

मैं दौड़ना चहता हूँ

sleep 3

पृष्ठभूमि में ताकि कमांड ["स्लीप 3" सिर्फ एक उदाहरण है] "पैरालल" शैली में चलेगा, इसलिए यह तेजी से खत्म होता है। लेकिन मुझे यह मिल रहा है:

bash: syntax error near unexpected token `;'

त्रुटि संदेश। क्यों? मैं पृष्ठभूमि को कोई कार्य क्यों नहीं भेज सकता?


आपको क्या लगता है कि आप ifबयान के साथ परीक्षण कर रहे हैं ?
ग्लेन जैकमैन 20

जवाबों:


6

ऐसा लगता है कि आपको उस मामले में अलग-अलग कमांड की आवश्यकता नहीं है ( &उन्हें स्वयं अलग करें)।

उदाहरण के लिए।

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

8

यह इसलिए है क्योंकि &पहले से ही एक बयान विभाजक है, इसलिए आपको इसके ;बाद नहीं रखना चाहिए ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.