2013-01-01 15 views
6

यदि मैंने एक प्रक्रिया शुरू की है जो लंबे समय तक चलने लगती है, तो क्या मैं तुरंत इसके बाद चलाने के लिए "कतार" कर सकता हूं?क्या वर्तमान में निष्पादन आदेश पूरा होने के बाद मैं आदेश चलाने के लिए बैश बता सकता हूं?

मुझे पता है कि मैं इसे cmd1 && cmd2 सिंटैक्स के साथ कर सकता हूं अगर मैं स्क्रैच से शुरू कर रहा था, लेकिन क्या होगा अगर cmd1 पहले से चल रहा है?

उत्तर

7

यदि वर्तमान में चल रहे आदेश इनपुट नहीं पढ़ रहे हैं, तो आप केवल उसी विंडो में कमांड टाइप कर सकते हैं। बैश इनपुट पढ़ेगा और जब कोई चालू होता है तो कमांड चलाएं।

+0

... पिछली कमांड * cmd1 * STDIN पढ़ने की कोशिश नहीं करते हैं! –

+1

हाँ, यह "अगर वर्तमान में चल रहा कमांड इनपुट नहीं पढ़ रहा है" भाग, @ एफ। हॉरी। :) –

0

आप ';' का उपयोग कर सकते हैं अंकन।

https://bbs.archlinux.org/viewtopic.php?id=104472

आप या तो उपयोग:

cmd1 & & CMD2

cmd1 सफलता पर, CMD2 निष्पादित करेंगे इस लिंक की जाँच करें। या:

cmd1; cmd2

cmd1 समापन पर, cmd2 कोई फर्क नहीं पड़ता कि क्या कोई फर्क नहीं पड़ता।

+3

यह सवाल का जवाब नहीं देता है; उन्होंने कहा कि 'cmd1' पहले से चल रहा है। –

11

आप वर्तमान अग्रभूमि कार्य को रोकने के लिए सी-जेड दबा सकते हैं, फिर कार्य को फिर से शुरू करने के लिए "fg %%; some-other-command" टाइप करें और बाद में एक और आदेश चलाएं।

+0

नौकरी पहचानकर्ताओं के '%%' के विवरण के लिए [तालिका देखें] (http://tldp.org/LDP/abs/html/x9644.html#JOBIDTABLE)। – SergA