विभिन्न फोल्डर (वर्किंग डायरेक्टरी) में कई टर्मिनल टैब कैसे खोलें?


10

मैं एक स्क्रिप्ट को विभिन्न फ़ोल्डरों में कई टैब खोलना चाहता हूं।

खोज करते समय मुझे यह प्रविष्टि मिली , लेकिन नीचे देखा गया एक एक्सचेंज ने मेरे होम फ़ोल्डर में तीन टैब के साथ एक टर्मिनल खोला। त्रुटि संदेश दिखाया:

Failed to parse arguments: Unknown option --execute=cd /some/thing/

स्क्रिप्ट इस प्रकार है:

#!/bin/sh
gnome-terminal --tab --execute="cd /some/thing/" \
          --tab --execute="cd /home/" \
          --tab --execute="cd /home/" \
exit 0

एक संस्करण जो --working-निर्देशिका = "/ कुछ / चीज /" से भी मदद नहीं करता है। क्या आप एक गलती देख सकते हैं?

जवाबों:


8

निम्नलिखित मेरे लिए वनैरिक पर काम करता है। आप अपने संस्करण के स्थान पर इसका उपयोग कर सकते हैं:

#!/bin/bash
gnome-terminal --tab  --working-directory="/var/www/" --tab --working-directory='/home/' --tab --working-directory='/home/'
exit 0

3

आपकी विशिष्ट त्रुटि --executeठीक से विकल्प का उपयोग नहीं करने के कारण होती है। यदि आप नीचे दिए गए मैन पेज के अंश को देखते हैं, तो आप ध्यान देंगे कि सिंटैक्स के हिस्से के रूप में सूचीबद्ध एक समान चिह्न --execute नहीं है, क्योंकि यह बस कमांड लाइन के बाकी हिस्सों को निष्पादित करता है। सही उपयोग का एक उदाहरण होगा:

gnome-terminal --execute play '/home/cjohnson/Still Alive.mp3'

महत्वपूर्ण नोट: वैसे भी एक विशेष मामले का एक सा
उपयोग कर रहा cdहै। cdअधिकांश आदेशों की तरह नहीं है - यह अपने आप में एक द्विआधारी / निष्पादन योग्य लॉन्च नहीं करता है। इसकी सीधे तौर पर व्याख्या की जाती है bash(या आप जो भी खोल का उपयोग कर रहे हैं)। इसलिए आह्वान करने की कोशिश और झंडों से cdसहमत नहीं है (जो सीधे बाल प्रक्रिया को बढ़ावा देना चाहते हैं)। एक ही समस्या उत्पन्न होगी (मैंने जाँच की है) अन्य आदेशों के साथ जो सीधे तरह से संसाधित होते हैं । यहां तक ​​कि अगर ठीक से उपयोग किया जाता है, तो बराबर चिह्न के बिना, यह अभी भी एक त्रुटि के परिणामस्वरूप होगा: "फ़ाइल या निर्देशिका नहीं मिली।" इसलिए विकल्प का उपयोग करना आपके लिए सबसे अच्छा दांव है जो आप करना चाहते हैं।--execute-xbashhome--working-directory=[DIRECTORY]

अन्य महत्वपूर्ण ध्यान दें:
भले ही यह मामला नहीं था, आप अभी भी मुसीबत में चलेंगे। समस्या --executeविकल्प का उपयोग करने की कोशिश में निहित है जब आप वास्तव में --commandविकल्प का अर्थ चाहते हैं । मैन पेज प्रलेखन में, यह विशेष रूप से बताता है

-e, --command = STRING टर्मिनल के अंदर इस विकल्प के तर्क को
निष्पादित करें

-x, --execute टर्मिनल के अंदर कमांड लाइन
के शेष भाग को निष्पादित करें ।

(जोर मेरा)

दूसरे शब्दों में, यह शायद इसे उस तरीके से पार्स करने वाला नहीं है जैसा आपको लगता है कि इसे करना चाहिए। का उपयोग करना --executeआपको किसी भी आगे के विकल्प को पास करने से रोकता है gnome-terminal

मेरी अपनी स्क्रिप्ट में से एक अंश जहां मैं अलग-अलग टैब में कई कमांड चलाता हूं (मेरी गोपनीयता / सुरक्षा के लिए नाम बदले गए):

gnome-terminal --tab --command="ssh cjohnson@GLaDOS" --tab --command="ssh drattman@GLaDOS"

(संयोग से, --commandध्वज का उपयोग करने की कोशिश कर रहा है cdया homeइसके परिणामस्वरूप परिचित "ऐसी कोई फ़ाइल या निर्देशिका" त्रुटि नहीं होगी।)

मुझे आशा है कि यह बहुत लंबा नहीं है। मैं पूरी तरह से कोशिश कर रहा हूँ।

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