2011-06-02 16 views
12

से एक नया बैश खोल शुरू करना मैं बैश खोल से एक प्रोग्राम चलाने के लिए चाहता हूं। जब कार्यक्रम चलता है, तो यह पूरे खोल पर हावी होता है, इसलिए मैं एक नया खोल शुरू करना चाहता हूं और वहां से प्रोग्राम चला सकता हूं। वर्तमान में मैं कर रहा हूं:एक बैश खोल

gnome-terminal -x "cd Dropbox; program_name" 

हालांकि मुझे त्रुटि देता है बच्चे की प्रक्रिया निष्पादित करने में विफल, ऐसी कोई फ़ाइल या निर्देशिका नहीं। मेरा मानना ​​है कि नए टर्मिनल में प्रारंभ करने का कोई समय नहीं है। मैं इसे कैसे ठीक करूं?

+0

ताकि कार्यक्रम पृष्ठभूमि में चलता है आप और और आदेश का उपयोग कर सकते हैं। तो $ ProgramThatTakesALongTime और ... लेकिन यह आपको उस प्रोग्राम से आउटपुट नहीं दिखाएगा ... – Nate

+1

@ नेट हाँ, आप पृष्ठभूमि में चल रहे प्रोग्रामों का आउटपुट देख सकते हैं। 'Eval' नींद 3 कोशिश करें; गूंज "हैलो" 'और ' –

उत्तर

8

मैं मानता हूं कि यह वास्तव में आपके प्रश्न का उत्तर नहीं देता है, लेकिन मुझे लगता है कि यह आपकी समस्या हल करता है।

पृष्ठभूमि में भेजने के लिए केवल & का उपयोग क्यों न करें। यदि यह अभी भी jobs साथ चल रहा है तुम देखो और fg साथ अग्रभूमि करने के लिए इसे वापस ला सकता है, तो आप भी, पृष्ठभूमि के लिए वापस भेज सकते हैं पहले Ctrl +जेड तो bg

उदाहरण के साथ इसे रोकने के कोशिश करना।

> sleep 20 & 
> jobs 
> fg [jobNumber] 
[Ctrl-Z] 
> jobs 
> bg [jobNumber] 
> jobs 
1

प्रोग्राम या सीडी के पूर्ण पथ का उपयोग gnome-terminal को कॉल करने से पहले करें। और आपको इसे पृष्ठभूमि में रखने के लिए & की आवश्यकता है।

cd Dropbox; gnome-terminal -x "program_name" & 
0

"&" अपने आदेश के अंत में जोड़ने का प्रयास करें, उदा .:

gnome-terminal & 

मैं अगर यह सूक्ति-टर्मिनल के साथ काम कर रहा है पता नहीं है, लेकिन यह mrxvt के साथ अच्छी तरह से काम किया।

1

screen आज़माएं। यह एक साधारण ब्रोग्राम है जो आपको एक ही समय में कई गोले का ट्रैक रखने की अनुमति देता है। आप प्रत्येक खुले गोले के माध्यम से नेविगेट कर सकते हैं और सत्र छोड़ सकते हैं और बाद में पुनः कनेक्ट कर सकते हैं।

0
/bin/bash -c "/path/to/prog" 

लेकिन sleep कमांड भी देखें।

8

प्रयास करें:

bash -c 'gnome-terminal -x cd /absolute-path && program_name' 
संबंधित मुद्दे