2009-12-16 9 views
16

शैल स्क्रिप्ट में देरी के बाद मैं प्रक्रिया को कैसे बढ़ा सकता हूं? मैं स्क्रिप्ट शुरू होने के 60 सेकंड बाद एक कमांड चाहता हूं, लेकिन मैं 60 सेकंड पहले इंतजार किए बिना बाकी स्क्रिप्ट को चालू रखना चाहता हूं।शेल स्क्रिप्ट एक देरी के बाद एक प्रक्रिया को जन्म दे रहा है

#!/bin/sh 
# Echo A 60 seconds later, but without blocking the rest of the script 
sleep 60 && echo "A" 

echo "B" 
echo "C" 

उत्पादन होना चाहिए

B 
C 
... 60 seconds later 
A 

मैं सभी एक स्क्रिप्ट में यह करने के लिए सक्षम होना चाहिए: यहाँ विचार है। अर्थात। पहली शेल स्क्रिप्ट से दूसरी स्क्रिप्ट नहीं बनाई गई है।

+0

ऐसा करता है। सरल और आसान। छोटा और मीठा – user1276046

उत्तर

30

& करना चाहिए एक पृष्ठभूमि काम शुरू होता है, तो

sleep 60 && echo "A" & 
+0

मैं समूह के बिना काम (कोष्ठक या ब्रेसिज़) देखकर आश्चर्यचकित हुआ। धन्यवाद :-) – Tanktalus

3

अभी कोशिश नहीं कर सकते लेकिन

(sleep 60 && echo "A")&

काम

+0

हाँ, यह करता है :) –

6

अन्य उत्तर पर एक मामूली विस्तार स्क्रिप्ट के अंत में पृष्ठभूमि वाले आदेशों का इंतजार करना है।

#!/bin/sh 
# Echo A 60 seconds later, but without blocking the rest of the script 

set -e 

sleep 60 && echo "A" & 
pid=$! 

echo "B" 
echo "C" 

wait $pid 
संबंधित मुद्दे