जीनोम टर्मिनल: एकाधिक टैब कैसे खोलें, कमांड निष्पादित करें और zsh / bash - bash, टर्मिनल, zsh, gnome, gnome-terminal पर वापस आएं

मैं अपनी सुबह की स्वचालित प्रक्रिया को स्वचालित करने की कोशिश कर रहा हूं। अक्सर "मैं कई रनिंग स्क्रिप्ट शुरू करूंगा जो मैं बाहर निकलूंगा (उपयोग करके ctrl+सी) और मैन्युअल रूप से आवश्यकतानुसार पुनः आरंभ करें।

तो मैं एक बैश स्क्रिप्ट बनाने के लिए देख रहा हूँ कि

  1. प्रारंभ होगा gnome-terminal
  2. कुछ टैब्स खोलता है और कई की क्रियान्वित करता है आदेशों
  3. स्क्रिप्ट से बाहर निकलने या पूरा होने पर वापस ज़श पर लौटता हूँ मैन्युअल रूप से अधिक कमांड दर्ज करें

वर्तमान में मेरे पास है,

#!/bin/bash

gnome-terminal 
--tab -t "Server" -e "bash -ic "cd ~/Dev/server; npm start; exec zsh"" 
--tab -t "Framework" -e "bash -ic "cd ~/Dev/framework; npm start; exec zsh"" 
--tab -t "Client" -e "bash -ic "cd ~/Dev/client; npm start; exec zsh"" 
--tab -t "Admin" -e "bash -ic "cd ~/Dev/admin;npm start; exec zsh""

इस समाधान के साथ समस्या यह है कि टैब वापस zsh में जा सकते हैं या नहीं भी। कभी 3 टैब, कभी एक। आदर्श रूप से मैं "सभी 4 की तरह वापस zsh में जाने के लिए।

अगर कोई भी मुझे इसके आसपास मदद कर सकता है, तो मैं आभारी हूं।

उत्तर:

जवाब के लिए 0 № 1

आप ले सकते हैं gnome-terminal समीकरण से बाहर और यह अभी भी "टी वर्क:

bash -ic "npm start; bash"

प्रेस नियंत्रण-सी, और आप जीत गए "टी को एक शेल मिलता है bash, हम इस समस्या को हल कर सकते हैं --rcfile विकल्प:

bash --rcfile <(echo "npm start")

इस तरह हम असली नहीं पढ़ते हैं .bashrc, इसलिए जब से हम शायद इसे पढ़ना चाहते हैं, तो इसे थोड़ा संशोधित करें:

bash --rcfile <(echo ". ~/.bashrc; npm start")

दूसरी ओर zsh के लिए यह समतुल्य (?) के साथ कार्य नहीं करता है। --rcs विकल्प, लेकिन यह तब होता है जब से शुरू किया गया ZDOTDIR चर। तो हम एक बनाते हैं .zshrc प्रत्येक के लिए ~/Dev/server, ~/Dev/framework, ~/Dev/client, ~/Dev/admin निम्नलिखित सामग्री के साथ:

प्रथम:

. ~/.zshrc
cd ~/Dev/server
npm start

दूसरा:

. ~/.zshrc
cd `~/Dev/framework`
npm start

आदि।

तुंहारे gnome-terminal कमांड इस तरह दिखेगा:

gnome-terminal 
--tab "Server" -e "sh -c "ZDOTDIR=/path/to/directory/containing/first/.zshrc"" 
--tab "Framework" -e "sh -c "ZDOTDIR=/path/to/directory/containing/second/.zshrc""
# etc

संबंधित सवाल
सबसे लोकप्रिय